Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
unitasium committed Feb 10, 2024
0 parents commit 0b22761
Show file tree
Hide file tree
Showing 3,686 changed files with 1,436,634 additions and 0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
48 changes: 48 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Ignore the following folders
bin/
*binary*/
build*/
_build/
share/doc/prevabs/_build/*
evals/
.vscode/

# Ignore the following files
~$*
*.pos
*.K
*.ech
*.opt
*.v0
*.v1
*.v1S
*.v20
*.v21
*.v22
*.msh
*.geo
*.stackdump
*_vabs*.dat
*.sc
*.sg
*.glb
*.snm
*.fi
*.o
*.exe
*~
/*\#*
*.U
*.E
*.EM
*.EN
*.EMN
*.S
*.SM
*.SN
*.SMN
*.ELE

# Ignore specific files
test.exe

111 changes: 111 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Change log

## Version 1.5

- 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.
- Added a new function to remove very short edges, very close vertices.
- Added a new input of length tolerance for edge removal.
- Added a new input to for multiple loading cases for dehomogenization and failure analysis.
- Added a new input to include a file of loading cases for dehomogenization and failure analysis.
- Added a new method to define an arc using two end points and a radius.
- Added a new method to define a line by joining multiple lines.
- Set the default line type to "straight", which can be omitted now.
- Fixed the issue of overlapping/duplicated mesh verticies.

## Version 1.4

- 1.4.3 (2022/01/11)
- Fixed the issue of plotting element stress and strain results.
- Fixed the issue of plotting dehomogenization results with quadratic elements.
- Added groups for different stress and strain plots.
- Added alternative tag names for material strength properties.
- Added visualization for initial failure analysis results.
- Added a new example for initial failure analysis (ex_uh60a_f).
- Simplifed and unified material strength inputs for different types of materials.
- Updated the section of material strength property input in the documentation.

- 1.4.2 (2021/11/05)
- Fixed an issue related with layer generation.

- 1.4.1 (2021/09/01)
- Fixed an issue in assigning theta1 and theta3 for filling components.

- 1.4.0 (2021/06/16)
- Added a new command option to run integrated VABS.
- Added new inputs for the rotor blade specific parameterization.
- Added new inputs for strength property of 'lamina' type materials.
- Added new inputs for assigning orientations for filling materials.
- Added a new input option for recover analysis in VABS. The default is linear beam theory.
- Added a new input option for setting the tolerance used in geometric computation.
- Added the capability of failure analysis using VABS.
- Updated the logging system.
- Changed the default element type to 'quadratic'.
- Unified the input syntax of recovery/dehomogenization of VABS/SwfitComp.
- Fixed the issue of incorrectly parsing numbers with more than one spaces between numbers.
- Fixed an issue in transforming an arc defined by center, start and radius.

## Version 1.3

- 1.3.0 (2021/02/25)
- Added a new capability to create base points using normalized parametric locations on a base line.
- Added a new capability to assign local mesh size for filling components.

## Version 1.2

- 1.2.0 (2020/11/10)
- Added a new capability to create layups from sublayups.
- Added a new capability to create segments using normalized parametric locations on a base line.

## Version 1.1

- 1.1.1 (2020/10/28)
- Fixed the problem of unable to read recover analysis result files on Linux.
- Fixed a problem when the segment is too short while the laminate is too thick.
- 1.1.0 (2020/10/15)
- Added a new format for the input file. Now baselines and layups data are merged into the main input file, to reduce the number of input files needed.
- Added a new material type 'lamina' accepting four numbers for elastic properties.
- Added default small numbers for elastic properties for isotropic materials.
- Updated the fill-type component for non-structural mass.

## Version 1.0 (2019/07/01)

- Added capability to create quadratic triangle elements. In the main input file, under the xml element `<general>`, create a sub element `<element_type>` and set it to `quadratic` or `2`. Default is `linear`.
- Added a new output file `*.txt` storing all running messages.
- Changed one of the layup methods tag name from 'explict list' ('el') to 'layer list' ('ll').
- Fixed the crashing issue caused by zero number of layers.
- Fixed the bug that sectional loads were read and written to the distributed loads when doing recovery using VABS.
- Fixed the bug that local lamina data does not overwrite global data.

## Version 0.6 (2018/07/01)

- Added xml elements in the main input file for various options of VABS/SwiftComp execution.
- Added xml elements in the main input file for failure analysis of SwiftComp.
- Added a `<basepoints>` element in the baseline file. Now for simple shapes, users do not need to use an extra basepoint file, which can still be included for long point list.
- Added a material database file along with the executable. Now PreVABS will look for materials in this file by default.
- Changed Gmsh library to dynamic/shared library.

## Version 0.5 (2018/01/31)

- Added the capability to create nose mass in an airfoil type cross section.
- Added the post-processing function to visualize the recovered strains and stresses in Gmsh.

## Version 0.4 (2017/12/04)

- Added the capability to read stacking sequence code.
- Added the parameter to set the number of straight lines to approximate an arc or circle.
- Changed the Gmsh input file name to `*.msh`, where `*` is the cross section name.

## Version 0.3 (2017/11/27)

- Updated the manual.
- Changed the default behaviour of the command with input file specified only to preparing VABS input (without running VABS).
- Changed the element tag `<origin>` to `<translate>`. Now the two numbers in this element moves base points and base lines, instead of the origin.
- Changed the element tag `<rotation>` to `<rotate>`.
- Changed the 'level' of a segment from an element to an attribute, with default 1.
- Changed the 'layup_direction' of a segment from an element to an attribute of the layup, with default 'right'.
- Changed the material type 'engineering constants' to 'orthotropic'.
- Set the default element type as 'quadratic'.
- Set the default mesh size to the smallest layer thickness.

130 changes: 130 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project( prevabs C CXX Fortran )



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()



include_directories( ${CMAKE_SOURCE_DIR}/include )
# 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)



add_executable( ${PROJECTNAME} ${SOURCES} )



# Link Boost libraries
# --------------------
set(Boost_USE_STATIC_LIBS OFF)
# set(Boost_USE_MULTITHREADED ON)
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} )
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} )

target_link_libraries( ${PROJECTNAME} ${GMSH} )



# 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" )
endif()


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


## Done

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


Loading

0 comments on commit 0b22761

Please sign in to comment.