Skip to content

Commit 34e543c

Browse files
SimonCaldclairerochefranck-ledouxAlphadius
authored
Issue 250 aero module improving (#426)
* - Add the "axisymetry" param to the .ini file to parse * - Clean the 2D tests * - Comment some prints * - Change the way to compute the step distance between two layers. This ensures us the second layer thickness will be higher than the one of the first layer of blocks. * - Clean the class FrontEdgesNodesClassification_3D from the useless marks on "semi edges" and "semi nodes" * - Add the same modification as on 2D for the computation of the distance step between two layers * - Change the way the position of the new points are computed for the Node Template 3 CORNER * - Change the way the valid global feature edges are computed * - Add a variable on the hexa inserted by patterns for visualisation - Add conditions for valid paths / global feature edges * - Add a line of doc * - Add the Interval Assignment 3D * - Add the Geometrical Classification of the Surface Blocking * - Add the Geometrical Classification of the edges and faces of the surface blocking * - Fix a mistake in the geometric classification of the block edges of the wall in the 2D pipeline - Add a condition on the geometric classification of a node of the wall before to perform a double block insertion - Remove some comments * - Remove some comments * - Add doc * - Comment the Surface Blocking Classification in the 3D pipeline - Add a check on the edges classification when computing a path of feature edges during the extrusion - Fix a test * - Fix a mistake in free marks in the Interval Assignment algorithm * - Add the vtk debug files option * - Add the closed path (loops) computation * - Add a method to build edges and connectivities on the 3D surface quad mesh * - Add a method to build edges and connectivities on the 3D surface quad mesh * - Fix a mistake in buildEfromFandConnectivities - Add the computation of edges and connectivities after the 3D surface quad mesh is read in the pipeline * - Clean some comments * - Fix some bugs * - Fix some bugs * - Move the computation of the edges of the starting front blocking * - Add the new class for the patterns - Modify AeroExtrusion_3D to use the new patterns class * - Rename some variables * - Add new methods * - Add a new test file * - Add a new test file from the Front class * - Fix the loop path computation in the 3D blocking algorithm * - Add a function to compute the vector field in the 3D algorithm * - Add details to the doc - Add methods to compute the 3D vector field * - Add a way to compute the edges of a front 3D * - Add a writer for MFEM 2D mesh format (.mesh) * - Improve README - Modify .mesh writter for MFEM * - Update README * - Update README * - Add a new param, to allow or not insertions in 3D * - Add new test file - Update doc * - Update test for layer structure manager * - Clean comments in method to orient regions * - Clean comments and prints - Add params aero as an input for FrontEdgesNodesClassification_3D * - Clean comments * - Add final blocking classification * - partially clean the external repository - Needs to have previously install pybind11, glpk and googletest (see spack installation in the github CI) - WITH_CGNS is now a high level option for Claire and blocking modules - All the CMakeLists.txt of tst/ directory have been simplified - The pygmds module is functional with a first single test (installation procedure must be verified) * modifcation of the function detect_classification_errors() for write on the same vector erros of classify. Know, we call detect_classification_errors at the end of classify(). The test ReturnErrors is valid (#308) * - Clean the 2D tests * - Fix a mistake in buildEfromFandConnectivities - Add the computation of edges and connectivities after the 3D surface quad mesh is read in the pipeline * - Add a new test file * - Correct files * - Print infos of the 3D blocking - Modify 2D test * - partially clean the external repository - Needs to have previously install pybind11, glpk and googletest (see spack installation in the github CI) - WITH_CGNS is now a high level option for Claire and blocking modules - All the CMakeLists.txt of tst/ directory have been simplified - The pygmds module is functional with a first single test (installation procedure must be verified) * - Clean the 2D tests * - Add a new test file * - partially clean the external repository - Needs to have previously install pybind11, glpk and googletest (see spack installation in the github CI) - WITH_CGNS is now a high level option for Claire and blocking modules - All the CMakeLists.txt of tst/ directory have been simplified - The pygmds module is functional with a first single test (installation procedure must be verified) * - Correct files * - Add a test to consider a high 2D curved blocking with its control points * - Add a smoother on control points for the 2D case * - Add a new class (Blocking3D), supposed to be the extension of the Blocking2D class * - Add a new class (Blocking3D), supposed to be the extension of the Blocking2D class * - Add a new class to compute a linear transfinite interpolation on a 3D grid * - Fix a bug in transfinite interpolation 3D - Add the creation of the inner nodes of each block of a blocking 3D * - Add the creation of the inner nodes of each block of a blocking 3D * - Add a method to write a mesh from a Blocking3D - Modify the IntervalAssignment_3D class to take a Blocking3D as an input, instead of a Mesh * - Add a class for Hexahedral Bezier volumes * - Improve Blocking3D class to compute inner nodes positions of a block face or block - Add method in Utils to interpolate scalar values on tetra - Add method in Utils to plot curved block edges of a Blocking3D using control points - Add control points computation to interpolate boundaries in AeroPipeline_3D * - Add a Utils method to rescale a mesh * - Modify 3D Interval Assignment to compute the discretization of a curved Blocking according to the control points - Use the Interval Assignment 3D algorithm to compute the discretization of each block in the AeroPipeline_3D algorithm * - Improve the way the positions of the new nodes are computed in PatternEdgeCorner - Add a new method to NodeNeighbourhoodOnFront_3D - Add a new condition to check if a closed end edges path is valid - Add a mesh quality criterion on hex (scaled jacobian) to AeroMeshQuality file * - Add a light SU2 writer for 3D hex meshes - Add an algo to compute the min degree needed to interpolate a geometric surface with Bezier surfaces * - Modify and fix a bug in 2D Pipeline to curve blocks of the first layer * - Add new params to control the Bézier curved blocking algorithms 3D * - Add a method to compute a characteristic length of a geometry * - Add a naive method to compute the max error between a geometric curve and a Bezier Curve - Add tests * - Add the creation of the inner nodes of each block of a blocking 3D * - Add a new method in NodeNeighbourhoodOnFront_3D - Fix a bug in different patterns on edges (corner and end) * - Pipeline update * - Clean debug prints * - Add a method to refine a block from a blocking3D in one face direction using a beta refinement law - Add unit tests for block refinement * - Change test name * - Improve * - Modify smoothing parameters * - Modify timers * - Add doc - Add parameter for block smoothing * - Add doc * - Add unit test for BezierCurve class * - Update algorithms to recent version - Clean CMakeLists and main to run tests - Update doc - Update test case * - Add method to compute control points of a bezier curve to interpolate a specific geometric curve and add corresponding unit tests - Add method to compute control points of a bezier surface to interpolate a specific geometric surface and add corresponding unit tests * - Add test to compute the degree of bezier blocks to represent a geometric surface according to a target error * - Add method to refine a 3D block structure in the first block layer using a Beta progression * - Cleaning claire component's CMakeLists.txt * - Refactor claire component to aero component * - Corrected call of old LaplacianSmoother class * - Some cleaning for aero merging --------- Co-authored-by: Claire Ordi Pro <claireroche47@gmail.com> Co-authored-by: franck.ledoux <franck.ledoux@live.fr> Co-authored-by: Paul Bourmaud <36196483+Alphadius@users.noreply.github.com>
1 parent 6d97994 commit 34e543c

184 files changed

Lines changed: 19310 additions & 4867 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ endif()
1111
#==============================================================================
1212
include (cmake/version.cmake)
1313

14-
project(gmds
14+
project(gmds
1515
LANGUAGES C CXX
1616
VERSION ${GMDS_VERSION})
1717
#==============================================================================
@@ -164,14 +164,14 @@ GMDS_ADD_COMPONENT(
164164
blocking # src subdirectory name
165165
GMDSBlocking # name of the generated library
166166
"This module provides a data structure for a blocking representation" # description
167-
OFF # is activated
167+
ON # is activated
168168
ON # must be covered
169169
)
170170

171171
GMDS_ADD_COMPONENT(
172-
CLAIRE # cmake variable
173-
claire # src subdirectory name
174-
GMDSClaire # name of the generated library
172+
AERO # cmake variable
173+
aero # src subdirectory name
174+
GMDSAero # name of the generated library
175175
" " # description
176176
ON # is activated
177177
ON # must be covered

aero/CMakeLists.txt

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
#==============================================================================
2+
# LIBRARY DEFINTION (SOURCE FILES)
3+
#==============================================================================
4+
# Nommer tout en GMDS_MODULE_NAME, GMDS_SRC, ... dans les composants
5+
set(GMDS_LIB ${LIB_GMDS_AERO})
6+
set(GMDS_LIB_PREFIX gmds/aero)
7+
8+
set(GMDS_INC
9+
${CMAKE_BINARY_DIR}/exports/${GMDS_LIB}_export.h
10+
inc/gmds/aero/AbstractAeroBoundaries.h
11+
inc/gmds/aero/AbstractAeroPipeline.h
12+
inc/gmds/aero/AbstractLevelSet.h
13+
inc/gmds/aero/AbstractPatternEdge.h
14+
inc/gmds/aero/AbstractPatternNode.h
15+
inc/gmds/aero/AbstractSmoothLineSweeping_2D.h
16+
inc/gmds/aero/AdvectedPointRK4_2D.h
17+
inc/gmds/aero/AdvectedPointRK4_3D.h
18+
inc/gmds/aero/AeroBoundaries_2D.h
19+
inc/gmds/aero/AeroBoundaries_3D.h
20+
inc/gmds/aero/AeroEllipticSmoothing_2D.h
21+
inc/gmds/aero/AeroException.h
22+
inc/gmds/aero/AeroExtrusion_2D.h
23+
inc/gmds/aero/AeroExtrusion_3D.h
24+
inc/gmds/aero/AeroMeshQuality.h
25+
inc/gmds/aero/AeroPipeline_2D.h
26+
inc/gmds/aero/AeroPipeline_3D.h
27+
inc/gmds/aero/Blocking3D.h
28+
inc/gmds/aero/ComputeBezierCtrlPtstoInterpolateSurface.h
29+
inc/gmds/aero/ComputeBezierCurveCtrlPtstoInterpolateCurve.h
30+
inc/gmds/aero/ComputeBezierDegree_3D.h
31+
inc/gmds/aero/ControlPointsSmoothing_2D.h
32+
inc/gmds/aero/DiffusionEquation2D.h
33+
inc/gmds/aero/DistanceMap.h
34+
inc/gmds/aero/FastLocalize.h
35+
inc/gmds/aero/Front.h
36+
inc/gmds/aero/Front_3D.h
37+
inc/gmds/aero/FrontEdgesNodesClassification_3D.h
38+
inc/gmds/aero/GradientComputation_2D.h
39+
inc/gmds/aero/GradientComputation_3D.h
40+
inc/gmds/aero/Grid_Smooth2D.h
41+
inc/gmds/aero/IntervalAssignment_2D.h
42+
inc/gmds/aero/IntervalAssignment_3D.h
43+
inc/gmds/aero/LayerStructureManager_3D.h
44+
inc/gmds/aero/LeastSquaresGradientComputation.h
45+
inc/gmds/aero/LevelSetCombined.h
46+
inc/gmds/aero/LevelSetEloi.h
47+
inc/gmds/aero/LevelSetExtended.h
48+
inc/gmds/aero/MeshAlignment_2D.h
49+
inc/gmds/aero/MFEMMeshWriter.h
50+
inc/gmds/aero/NodeNeighbourhoodOnFront_3D.h
51+
inc/gmds/aero/Params.h
52+
inc/gmds/aero/PatternEdgeCorner.h
53+
inc/gmds/aero/PatternEdgeEnd.h
54+
inc/gmds/aero/PatternEdgeReversal.h
55+
inc/gmds/aero/PatternFace.h
56+
inc/gmds/aero/PatternNode1Corner2End.h
57+
inc/gmds/aero/PatternNode2Corner1End.h
58+
inc/gmds/aero/PatternNode2Corner1Reversal.h
59+
inc/gmds/aero/PatternNode2Corner2End.h
60+
inc/gmds/aero/PatternNode2End1Reversal.h
61+
inc/gmds/aero/PatternNode3Corner.h
62+
inc/gmds/aero/PatternNode3Corner3End.h
63+
inc/gmds/aero/PatternNode3End.h
64+
inc/gmds/aero/RefinementBeta.h
65+
inc/gmds/aero/RefinementBetaBlock3D.h
66+
inc/gmds/aero/RefinementBetaBlocking.h
67+
inc/gmds/aero/RefinementBetaBlocking3D.h
68+
inc/gmds/aero/Smooth2D.h
69+
inc/gmds/aero/SmoothingPaving_2D.h
70+
inc/gmds/aero/SmoothLineSweepingOrtho.h
71+
inc/gmds/aero/SmoothLineSweepingYao.h
72+
inc/gmds/aero/SU2Writer.h
73+
inc/gmds/aero/SU2Writer_3D.h
74+
inc/gmds/aero/TransfiniteInterpolation_3D.h
75+
inc/gmds/aero/Utils.h
76+
77+
)
78+
set(GMDS_SRC
79+
src/AbstractAeroBoundaries.cpp
80+
src/AbstractAeroPipeline.cpp
81+
src/AbstractLevelSet.cpp
82+
src/AbstractPatternEdge.cpp
83+
src/AbstractPatternNode.cpp
84+
src/AbstractSmoothLineSweeping_2D.cpp
85+
src/AdvectedPointRK4_2D.cpp
86+
src/AdvectedPointRK4_3D.cpp
87+
src/AeroBoundaries_2D.cpp
88+
src/AeroBoundaries_3D.cpp
89+
src/AeroEllipticSmoothing_2D.cpp
90+
src/AeroException.cpp
91+
src/AeroExtrusion_2D.cpp
92+
src/AeroExtrusion_3D.cpp
93+
src/AeroMeshQuality.cpp
94+
src/AeroPipeline_2D.cpp
95+
src/AeroPipeline_3D.cpp
96+
src/Blocking3D.cpp
97+
src/ComputeBezierCtrlPtstoInterpolateSurface.cpp
98+
src/ComputeBezierCurveCtrlPtstoInterpolateCurve.cpp
99+
src/ComputeBezierDegree_3D.cpp
100+
src/ControlPointsSmoothing_2D.cpp
101+
src/DiffusionEquation2D.cpp
102+
src/DistanceMap.cpp
103+
src/FastLocalize.cpp
104+
src/Front.cpp
105+
src/Front_3D.cpp
106+
src/FrontEdgesNodesClassification_3D.cpp
107+
src/GradientComputation_2D.cpp
108+
src/GradientComputation_3D.cpp
109+
src/Grid_Smooth2D.cpp
110+
src/IntervalAssignment_2D.cpp
111+
src/IntervalAssignment_3D.cpp
112+
src/LeastSquaresGradientComputation.cpp
113+
src/LayerStructureManager_3D.cpp
114+
src/LevelSetCombined.cpp
115+
src/LevelSetEloi.cpp
116+
src/LevelSetExtended.cpp
117+
src/MeshAlignment_2D.cpp
118+
src/MFEMMeshWriter.cpp
119+
src/NodeNeighbourhoodOnFront_3D.cpp
120+
src/PatternEdgeCorner.cpp
121+
src/PatternEdgeEnd.cpp
122+
src/PatternEdgeReversal.cpp
123+
src/PatternFace.cpp
124+
src/PatternNode1Corner2End.cpp
125+
src/PatternNode2Corner1End.cpp
126+
src/PatternNode2Corner1Reversal.cpp
127+
src/PatternNode2Corner2End.cpp
128+
src/PatternNode2End1Reversal.cpp
129+
src/PatternNode3Corner.cpp
130+
src/PatternNode3Corner3End.cpp
131+
src/PatternNode3End.cpp
132+
src/RefinementBeta.cpp
133+
src/RefinementBetaBlock3D.cpp
134+
src/RefinementBetaBlocking.cpp
135+
src/RefinementBetaBlocking3D.cpp
136+
src/Smooth2D.cpp
137+
src/SmoothingPaving_2D.cpp
138+
src/SmoothLineSweepingOrtho.cpp
139+
src/SmoothLineSweepingYao.cpp
140+
src/SU2Writer.cpp
141+
src/SU2Writer_3D.cpp
142+
src/TransfiniteInterpolation_3D.cpp
143+
src/Utils.cpp
144+
src/main.cpp
145+
)
146+
#==============================================================================
147+
add_library(${GMDS_LIB} ${GMDS_INC} ${GMDS_SRC})
148+
#==============================================================================
149+
include(GenerateExportHeader)
150+
generate_export_header(${GMDS_LIB}
151+
EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/exports/${GMDS_LIB}_export.h
152+
EXPORT_MACRO_NAME ${GMDS_LIB}_API)
153+
#==============================================================================
154+
# TARGET DEFINITION
155+
#==============================================================================
156+
include(GNUInstallDirs)
157+
158+
#LIBRARY TO INSTALL
159+
target_link_libraries(${GMDS_LIB} PUBLIC
160+
${LIB_GMDS_IG}
161+
${LIB_GMDS_IO}
162+
${LIB_GMDS_IG_ALGO}
163+
${LIB_GMDS_CAD}
164+
${LIB_GMDS_QUALITY}
165+
${LIB_GMDS_CADFAC}
166+
${LIB_GMDS_SMOOTHY}
167+
${LIB_GMDS_BLOCKING}
168+
ANN
169+
)
170+
171+
target_compile_features(${GMDS_LIB} PUBLIC cxx_std_14)
172+
173+
# INCLUDE TO INSTALL
174+
target_include_directories(${GMDS_LIB} PUBLIC
175+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
176+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>
177+
)
178+
set_target_properties(${GMDS_LIB} PROPERTIES PUBLIC_HEADER "${GMDS_INC}")
179+
180+
install(TARGETS ${GMDS_LIB}
181+
EXPORT GMDS_SUITE
182+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${GMDS_LIB_PREFIX}
183+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
184+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
185+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
186+
187+
#==============================================================================
188+
if(WITH_TEST)
189+
add_subdirectory(tst)
190+
endif(WITH_TEST)
191+
192+
#==============================================================================
193+
# EXECUTABLE
194+
#==============================================================================
195+
add_executable(Aero src/main.cpp)
196+
target_link_libraries(Aero PRIVATE ${GMDS_LIB})
197+
target_compile_features(Aero PUBLIC cxx_std_14)
198+
install(TARGETS Aero)
199+
200+
add_executable(aero_dev src/main_dev.cpp)
201+
target_link_libraries(aero_dev PRIVATE ${GMDS_LIB})
202+
target_compile_features(aero_dev PUBLIC cxx_std_14)

0 commit comments

Comments
 (0)