Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
unitasium committed Nov 18, 2024
2 parents 0b22761 + 598cd69 commit 61e9a66
Show file tree
Hide file tree
Showing 3,428 changed files with 150,044 additions and 25,042 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
41 changes: 41 additions & 0 deletions .github/workflows/build_sphinx_dox.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: sphinx build doc html

on:
push:
branches:
- main

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
build-html:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.9'
- name: Install dependencies
run: |
pwd
ls -al
python -m pip install --upgrade pip
pip install -r doc/user/requirements.txt
- name: Build HTML
run: |
pwd
ls -al
cd doc/user
make clean
make html
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: doc/user/_build/html
force_orphan: true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ _build/
share/doc/prevabs/_build/*
evals/
.vscode/
.vs/

# Ignore the following files
~$*
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
# Change log

## Version 1.6

- 1.6.0 (2024/11)
- Added a new output file after creating the cross-section to store the mapping between material IDs and names.
- Changed the gmsh linking to the shared library from the SDK.
- Fixed the issue of unabling to run PreVABS without VABS dll.
- Fixed the issue of not reading airfoil data properly on linux.
- Fixed the issue of not skipping header rows of airfoil data.
- Fixed the issue of not able to run the input without the "include" block.

## Version 1.5

- 1.5.1 (2022/10/27)
- Fixed the issue of reading result of failure analysis of the new format with an extra line of load case label.
- Added a new tag name for the root XML element: "sg".
- Added a new input for output model dimension (for SwiftComp only).
- Updated the writing function for 3D solid model (for SwiftComp only).
- Changed the Gmsh plot option for strength ratios.

- 1.5.0 (2022/06/05)
- Added a new type of line "airfoil", which can accept the file name of a standard airfoil data file.
- Added new arguments for points defined on an airfoil line.
Expand Down
187 changes: 99 additions & 88 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,130 +1,141 @@
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project( prevabs C CXX Fortran )

cmake_policy(SET CMP0074 NEW)

project( prevabs C CXX )
# project( prevabs C CXX Fortran )

set( PROJECTNAME "prevabs" )

set( CMAKE_CXX_STANDARD 11 )

set( PREVABS_MAJOR_VERSION 1 )
set( PREVABS_MINOR_VERSION 4 )
set( PREVABS_VERSION "${PREVABS_MAJOR_VERSION}.${PREVABS_MINOR_VERSION}" )

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
set( PREVABS_VERSION_MAJOR 1 )
set( PREVABS_VERSION_MINOR 6 )
set( PREVABS_VERSION_PATCH 0 )
set( PREVABS_VERSION "${PREVABS_VERSION_MAJOR}.${PREVABS_VERSION_MINOR}.${PREVABS_VERSION_PATCH}" )

# Generate version.h
configure_file(
"${CMAKE_SOURCE_DIR}/version.h.in"
"${CMAKE_BINARY_DIR}/generated/version.h"
@ONLY
)

option(LINK_VABS_SHARED_LIB "Link VABS shared library" OFF)

# include(CheckCXXCompilerFlag)
# CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
# CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
# if(COMPILER_SUPPORTS_CXX11)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# elseif(COMPILER_SUPPORTS_CXX0X)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
# else()
# message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
# endif()



include_directories( ${CMAKE_SOURCE_DIR}/include )
# include_directories( ${CMAKE_BINARY_DIR}/generated )
# include_directories( ${CMAKE_SOURCE_DIR}/include/gmsh )

set( PROJECTNAME "prevabs" )
set( SOURCES
src/geo/PGeoClasses.cpp
src/geo/PGeoLine.cpp
src/geo/PDCELVertex.cpp
src/geo/PDCELHalfEdge.cpp
src/geo/PDCELHalfEdgeLoop.cpp
src/geo/PDCELFace.cpp
src/geo/PDCEL.cpp
src/geo/PBST.cpp
src/geo/geo.cpp
src/geo/offset.cpp
src/geo/intersect.cpp
src/cs/PArea.cpp
src/cs/Material.cpp
src/cs/PSegment.cpp
src/cs/PComponent.cpp
src/cs/PBuildComponentLaminate.cpp
src/cs/PBuildComponentFilling.cpp
src/cs/PBuildSegmentAreas.cpp
src/cs/CrossSection.cpp
src/cs/PBaseLine.cpp
src/cs/PModel.cpp
src/cs/join.cpp
src/io/PModelIO.cpp
src/io/PModelIOReadBasePoint.cpp
src/io/PModelIOReadBaseLine.cpp
src/io/PModelIOReadMaterial.cpp
src/io/PModelIOReadLayup.cpp
src/io/PModelIOReadComponent.cpp
src/io/PModelIOReadComponentLaminate.cpp
src/io/PModelIOReadComponentFilling.cpp
src/io/PModelIOReadCrossSection.cpp
src/io/PModelIODehomo.cpp
src/io/PModelIOSG.cpp
src/io/PModelIOPlot.cpp
src/gmsh/PModelBuildGmsh.cpp
src/gmsh/PModelIOGmsh.cpp
src/plog.cpp
src/overloadOperator.cpp
src/utilities.cpp
src/execu.cpp
src/main.cpp
src/vabs/output.f90
)
# add_subdirectory(src)
file(GLOB_RECURSE SOURCES "${CMAKE_SOURCE_DIR}/src/*.cpp")



if(MSVC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE")
endif()

add_executable( ${PROJECTNAME} ${SOURCES} )

# target_include_directories( ${PROJECTNAME} PUBLIC ${CMAKE_SOURCE_DIR}/include )
target_include_directories( ${PROJECTNAME} PUBLIC ${CMAKE_BINARY_DIR}/generated )


# Link Boost libraries
# --------------------
set(Boost_USE_STATIC_LIBS OFF)
if(WIN32 OR CYGWIN)
set(Boost_USE_STATIC_LIBS ON)
endif()
# set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
add_definitions( -DBOOST_ALL_DYN_LINK )
# set(Boost_USE_STATIC_RUNTIME OFF)
# add_definitions( -DBOOST_ALL_DYN_LINK )

find_package( Boost 1.66 COMPONENTS log log_setup system thread REQUIRED )
message( ${Boost_INCLUDE_DIRS} )
message( ${Boost_LIBRARY_DIRS} )
message( ${Boost_LIBRARIES} )
message( STATUS "(st) " ${Boost_INCLUDE_DIRS} )
message( STATUS "(st) " ${Boost_LIBRARY_DIRS} )
message( STATUS "(st) " ${Boost_LIBRARIES} )
include_directories( ${Boost_INCLUDE_DIRS} )

target_link_libraries( ${PROJECTNAME} ${Boost_LIBRARIES} )


# Link Gmsh library
# -----------------
find_library( GMSH NAMES Gmsh PATHS "./lib" REQUIRED NO_DEFAULT_PATH)
message( ${GMSH} )
message( STATUS "(st) " $ENV{Gmsh_ROOT} )

target_link_libraries( ${PROJECTNAME} ${GMSH} )
find_path(GMSH_INC gmsh.h PATHS $ENV{Gmsh_ROOT}/include REQUIRED)
if(NOT GMSH_INC)
message(FATAL_ERROR "Could not find gmsh.h")
endif()
message( STATUS "(st) " ${GMSH_INC} )
include_directories(${GMSH_INC})

find_library(GMSH_LIB gmsh PATHS $ENV{Gmsh_ROOT}/lib REQUIRED)
if(NOT GMSH_LIB)
message(FATAL_ERROR "Could not find libgmsh")
endif()
message( STATUS "(st) " ${GMSH_LIB} )
target_link_libraries( ${PROJECTNAME} ${GMSH_LIB} )

# find_library( GMSH NAMES Gmsh PATHS "./lib" REQUIRED NO_DEFAULT_PATH)
# message( STATUS "(st) " ${GMSH} )
# target_link_libraries( ${PROJECTNAME} ${GMSH} )


# Extra libraries
# ---------------
if(WIN32 OR CYGWIN)
list(APPEND EXTRA_LIBS winmm wsock32 ws2_32 psapi)
target_link_libraries( ${PROJECTNAME} ${EXTRA_LIBS} )
endif()


# Link VABS library
# -----------------
# find_library( VABS NAMES VABS PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH)
# find_library( VABS NAMES VABSLib.so PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH )
# message( ${VABS} )
# set( CMAKE_SHARED_LIBRARY_PREFIX "" )

# target_link_directories( ${PROJECTNAME} "/home/msg/a/MSGCodes" )
# target_link_libraries( ${PROJECTNAME} ${VABS} )
# target_link_libraries( ${PROJECTNAME} "${VABS_INSTALL_DIR}/VABSLib.so" )
# target_link_options( ${PROJECTNAME} PRIVATE "${VABS_INSTALL_DIR}/VABSLib.so" )

if( WIN32 OR CYGWIN OR MINGW )
find_library( VABS NAMES VABSLIB.dll.a PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH)
message( ${VABS} )
target_link_libraries( ${PROJECTNAME} ${VABS} )
# target_link_options( ${PROJECTNAME} PRIVATE "${VABS_INSTALL_DIR}/VABSLIB.dll" )
elseif( UNIX )
target_link_options( ${PROJECTNAME} PRIVATE "${VABS_INSTALL_DIR}/VABSLib.so" )
if ( LINK_VABS_SHARED_LIB )

# find_library( VABS NAMES VABS PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH)
# find_library( VABS NAMES VABSLib.so PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH )
# message( ${VABS} )
# set( CMAKE_SHARED_LIBRARY_PREFIX "" )

# target_link_directories( ${PROJECTNAME} "/home/msg/a/MSGCodes" )
# target_link_libraries( ${PROJECTNAME} ${VABS} )
# target_link_libraries( ${PROJECTNAME} "${VABS_INSTALL_DIR}/VABSLib.so" )
# target_link_options( ${PROJECTNAME} PRIVATE "${VABS_INSTALL_DIR}/VABSLib.so" )

if( WIN32 OR CYGWIN OR MINGW )
find_library( VABS NAMES VABSLIB.dll.a PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH)
message( STATUS "(st) " ${VABS} )
target_link_libraries( ${PROJECTNAME} ${VABS} )

elseif( UNIX )
# find_library( VABS NAMES VABSLib.so PATHS "${VABS_INSTALL_DIR}" REQUIRED NO_DEFAULT_PATH)
# message( ${VABS} )
# target_link_libraries( ${PROJECTNAME} ${VABS} )
# target_link_options( ${PROJECTNAME} PRIVATE "${VABS_INSTALL_DIR}/VABSLib.so" )
# target_link_options( ${PROJECTNAME} PRIVATE "-l:VABSLib.so" )
target_link_options( ${PROJECTNAME} PRIVATE "-L${VABS_INSTALL_DIR}" )
target_link_options( ${PROJECTNAME} PRIVATE "-l:VABSLib.so" )

endif()

endif()


# Install
# -------
install(TARGETS ${PROJECTNAME} RUNTIME DESTINATION bin)
install(TARGETS ${PROJECTNAME} RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/bin)
48 changes: 46 additions & 2 deletions DEVLOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,58 @@
# Development Log

## Backlog

- [Bug] Issue of generating layups for a closed line if the closing point has joint angle larger than 180 degrees
- [Bug] Issue of creating a new point on airfoil using 'x2' if it coincides with an existing point in the airfoil data

## Done

2023/04/14

- [Bug] Fixed an issue of writing incompatible input for SwiftComp version 2.2.
- [New] Added a new command line option to configure VABS/SwiftComp version.

2023/02/19

- [New] Added thermo-related inputs (CTE and specific heat) for SwiftComp.
- [New] Added a new input option `physics` under `analysis` to indicate the analysis type for SwiftComp.

2023/02/09

- [New] Added the capability to identify interfaces and output the nodes on the interfaces, with three new input options under `general`: `track_interface`, `interface_theta1_diff_threshold`, and `interface_theta3_diff_threshold`.

2022/12/10

- [New] Added the input and capability to reverse the line with type "airfoil"

2022/11/24

- [New] Added the capability to set material orientation align the base line

2022/11/22

- [Bug] Fixed the issue of not reading the root 'sg' element for dehomogenization and failure analysis
- [Bug] Fixed the issue of not reading 'global' input without loads for failure strength analysis

2022/11/18

- [New] Added the capability to change the free end shape using a vector

2022/11/16

- [New] Added the input for omega (General volume of the SG in the periodic dimensions; SwiftComp only)
- [New] Added the input for material and lamina in the main input file.

2022/11/14

- [Bug] Fixed the issue of writing wrong flag for general anisotropic materials.

2022/07/23

- [Bug] Fixed the issue of reading result of failure analysis of the new format with an extra line of load case label.
- [Opt] Changed the Gmsh plot option for strength ratios.


## Backlog

## Changes in Gmsh

- Added a new member variable `tags` in the class `GEntity` (`GEntity.h`).
File renamed without changes.
Loading

0 comments on commit 61e9a66

Please sign in to comment.