Skip to content

Commit 9e51893

Browse files
authored
Merge pull request #450 from LIHPC-Computational-Geometry/449-repositories-restructuration
Code restructuration
2 parents 427cb77 + 7f7a235 commit 9e51893

File tree

1,144 files changed

+401
-438
lines changed

Some content is hidden

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

1,144 files changed

+401
-438
lines changed

.circleci/config.yml

Lines changed: 0 additions & 26 deletions
This file was deleted.

.github/workflows/continuous-ubuntu.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
cmake /__w/gmds/gmds -DCMAKE_BUILD_TYPE=${{ matrix.config }}
5858
-DWITH_CODE_COVERAGE:BOOL=ON
5959
-DWITH_CGNS:BOOL=OFF
60-
-DWITH_PYTHON_API:BOOL=ON
60+
-DWITH_PYTHON_API:BOOL=OFF
6161
-DWITH_TEST:BOOL=ON
6262
-DENABLE_BLOCK_MESHER:BOOL=ON
6363
-DENABLE_BLOCKING:BOOL=ON

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ build*/
2222
# other modifications should be carefully considered.
2323
# comment when necessary
2424
external/
25-
#!external/glpk/src/glpk/w64/glpk_4_65.dll
26-
#!external/glpk/src/glpk/w64/glpk_4_65.lib
27-
2825

2926
# spack files when dev-build
3027
spack-build*

CMakeLists.txt

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ add_subdirectory(external/HLBFGS)
142142

143143
GMDS_ADD_COMPONENT(
144144
BLOCK_MESHER # cmake variable
145-
blockMesher # src subdirectory name
145+
sandbox/blockMesher # src subdirectory name
146146
GMDSBlockMesher # name of the generated library
147147
"Provide the mesh of a block structure classified on a CAD geometry" # description
148148
OFF # is activated
@@ -151,35 +151,26 @@ GMDS_ADD_COMPONENT(
151151

152152
GMDS_ADD_COMPONENT(
153153
MCTSBLOCK # cmake variable
154-
mctsblock # src subdirectory name
154+
sandbox/mctsblock # src subdirectory name
155155
GMDSMctsBlock # name of the generated library
156156
"Blocking generation using MCTS" # description
157157
OFF # is activated
158158
OFF # must be covered
159159
)
160160

161161

162-
GMDS_ADD_COMPONENT(
163-
BLOCKING # cmake variable
164-
blocking # src subdirectory name
165-
GMDSBlocking # name of the generated library
166-
"This module provides a data structure for a blocking representation" # description
167-
ON # is activated
168-
ON # must be covered
169-
)
170-
171162
GMDS_ADD_COMPONENT(
172163
AERO # cmake variable
173-
aero # src subdirectory name
164+
modules/aero # src subdirectory name
174165
GMDSAero # name of the generated library
175-
" " # description
166+
"Advancing front algorithm (2D/3D) dedicated to atmosphere re-entry " # description
176167
ON # is activated
177168
ON # must be covered
178169
)
179170

180171
GMDS_ADD_COMPONENT(
181172
DUAL_BLOCKING
182-
dualBlocking
173+
sandbox/dualBlocking
183174
GMDSDualBlocking
184175
"Dual blocking component"
185176
OFF
@@ -188,16 +179,16 @@ GMDS_ADD_COMPONENT(
188179

189180
GMDS_ADD_COMPONENT(
190181
ELG3D
191-
Elg3D
182+
modules/Elg3D
192183
GMDSelg3d
193184
"overlay-grid algorithm"
194185
OFF
195186
OFF # must be covered
196187
)
197188

198189
GMDS_ADD_COMPONENT(
199-
ELGMORPHING
200-
elgmorphing
190+
ELG_MORPHING
191+
modules/elgmorphing
201192
GMDSelgmorphing
202193
"morphing the mesh"
203194
OFF
@@ -206,7 +197,7 @@ GMDS_ADD_COMPONENT(
206197

207198
GMDS_ADD_COMPONENT(
208199
FRAME # cmake variable
209-
frame # src subdirectory name
200+
modules/frame # src subdirectory name
210201
GMDSFrame # name of the generated library
211202
"Frame field generation component" # description
212203
ON # is activated
@@ -215,7 +206,7 @@ GMDS_ADD_COMPONENT(
215206

216207
GMDS_ADD_COMPONENT(
217208
FRAME_3D
218-
frame3d
209+
modules/frame3d
219210
GMDSFrame3d
220211
"3D Frame field generation component"
221212
ON
@@ -224,16 +215,16 @@ GMDS_ADD_COMPONENT(
224215

225216
GMDS_ADD_COMPONENT(
226217
GEOD_HONEY_COMB
227-
geodHoneyComb
218+
modules/geodHoneyComb
228219
GMDSGeodHoneyComb
229220
"Algorithms to create honeycomb like meshes for spherical geometries"
230221
ON
231222
ON # must be covered
232223
)
233224

234225
GMDS_ADD_COMPONENT(
235-
HYBRIDMESHADAPT
236-
hybridMeshAdapt
226+
HYBRID_MESH_ADAPT
227+
sandbox/hybridMeshAdapt
237228
GMDSHybridMeshAdapt
238229
"Hybrid remeshing component"
239230
OFF
@@ -242,16 +233,17 @@ GMDS_ADD_COMPONENT(
242233

243234
GMDS_ADD_COMPONENT(
244235
KMDS
245-
kmds
236+
modules/kmds
246237
GMDSkmds
247238
"kokkos-based mesh structure"
248239
OFF
249240
OFF # must be covered
250241
)
251242

243+
252244
GMDS_ADD_COMPONENT(
253-
MEDIALAXIS
254-
medialaxis
245+
MEDIAL_AXIS
246+
modules/medialaxis
255247
GMDSMedialaxis
256248
"Medial-axis component"
257249
OFF
@@ -260,16 +252,24 @@ GMDS_ADD_COMPONENT(
260252

261253
GMDS_ADD_COMPONENT(
262254
MEDUSA
263-
medusa
255+
sandbox/medusa
264256
GMDSMedusa
265257
"Visualization component"
266258
OFF
267259
OFF # must be covered
268260
)
261+
GMDS_ADD_COMPONENT(
262+
SHEET
263+
sandbox/sheet
264+
GMDSSheet
265+
"Sheet operation for quad/hex meshes"
266+
OFF
267+
OFF # must be covered
268+
)
269269

270270
GMDS_ADD_COMPONENT(
271271
MILP
272-
milp
272+
sandbox/milp
273273
GMDSmilp
274274
"Mixed-Integer Linear Programming component"
275275
OFF
@@ -278,7 +278,7 @@ GMDS_ADD_COMPONENT(
278278

279279
GMDS_ADD_COMPONENT(
280280
MORPHMESH
281-
morphMesh
281+
modules/morphMesh
282282
GMDSmorphMesh
283283
"morphing the mesh"
284284
ON
@@ -287,43 +287,43 @@ GMDS_ADD_COMPONENT(
287287

288288
GMDS_ADD_COMPONENT(
289289
PADDING
290-
padding
290+
sandbox/padding
291291
GMDSPadding
292292
"Smart Padding/Pillowing algorithm"
293293
OFF
294-
ON # must be covered
294+
OFF # must be covered
295295
)
296296

297297
GMDS_ADD_COMPONENT(
298298
POLYBLOCK
299-
polyblock
299+
sandbox/polyblock
300300
GMDSPolyblock
301301
"Polycube_like algorithms for hexahedral blocking"
302302
OFF
303-
ON # must be covered
303+
OFF # must be covered
304304
)
305305

306306
GMDS_ADD_COMPONENT(
307307
QUADFRONT # cmake variable
308-
quadfront # src subdirectory name
308+
sandbox/quadfront # src subdirectory name
309309
GMDSquadfront # name of the generated library
310310
"advancing-front quad mesher" # description
311311
OFF # is activated
312-
ON # must be covered
312+
OFF # must be covered
313313
)
314314

315315
GMDS_ADD_COMPONENT(
316316
RLBLOCKING # cmake variable
317-
rlBlocking # src subdirectory name
317+
sandbox/rlBlocking # src subdirectory name
318318
GMDSRlBlocking # name of the generated library
319319
"MCTS-guided blocking modifications" # description
320320
OFF # is activated
321321
OFF # must be covered
322322
)
323323

324324
GMDS_ADD_COMPONENT(
325-
SINGGRAPHBUILD
326-
singGraphBuild
325+
SING_GRAPH_BUILD
326+
modules/singGraphBuild
327327
GMDSSingGraphBuild
328328
"Singularity graph building component"
329329
ON
@@ -406,25 +406,25 @@ endif(WITH_CODE_COVERAGE)
406406
#==============================================================================
407407
#for each component, we define a library name to use and a directory
408408
set(LIB_GMDS_UTILS GMDSUtils)
409-
add_subdirectory(utils)
409+
add_subdirectory(core/utils)
410410
set(LIB_GMDS_MATH GMDSMath)
411-
add_subdirectory(math)
411+
add_subdirectory(core/math)
412412
set(LIB_GMDS_IG GMDSIg)
413-
add_subdirectory(ig)
413+
add_subdirectory(core/ig)
414414
set(LIB_GMDS_IO GMDSIo)
415-
add_subdirectory(io)
415+
add_subdirectory(core/io)
416416
set(LIB_GMDS_IG_ALGO GMDSIgAlgo)
417-
add_subdirectory(igalgo)
417+
add_subdirectory(core/igalgo)
418418
set(LIB_GMDS_QUALITY GMDSQuality)
419-
add_subdirectory(quality)
419+
add_subdirectory(core/quality)
420420
set(LIB_GMDS_CAD GMDSCad)
421-
add_subdirectory(cad)
421+
add_subdirectory(core/cad)
422422
set(LIB_GMDS_CADFAC GMDSCadFac)
423-
add_subdirectory(cadfac)
423+
add_subdirectory(core/cadfac)
424+
set(LIB_GMDS_BLOCKING GMDSBlocking)
425+
add_subdirectory(core/blocking)
424426
set(LIB_GMDS_SMOOTHY GMDSSmoothy)
425-
add_subdirectory(smoothy)
426-
set(LIB_GMDS_IG_SHEET GMDSSheet)
427-
add_subdirectory(sheet)
427+
add_subdirectory(core/smoothy)
428428

429429
if(WITH_PYTHON_API)
430430
add_subdirectory(pygmds)

README.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This project is part of the [magix3d](https://github.com/LIHPC-Computational-Geo
1919
## Last changes
2020
- We changed our installation procedure. In particular, we externalized some of gmds depencies. See the [developer documentation](docs/mkdocs/dev-guide/developers_doc.md) for more details.
2121
- Important work is done on the Python API, see the [pygmds](pygmds/README.md) module.
22-
- Our blocking structure is evolving to be more robust and efficient for the blocking procedure. See the [blocking](blocking/README.md) module.
22+
- Our blocking structure is evolving to be more robust and efficient for the blocking procedure. See the [blocking](core/blocking/README.md) module.
2323

2424
## GMDS in a nuthsell
2525
**GMDS**, for **G**eneric **M**esh **D**ata & **S**ervices, is a C++ library written to provide mesh data structures and algorithms to developers that intend to design meshing algorithms and build pipelines of those algorithms.
@@ -48,24 +48,12 @@ for(auto node_id: m->nodes()){
4848
```
4949
*gmds* provides a framework for developing new algorithms and our current interest is about structured quadrilateral and hexahedral meshing. To generate such meshes, we focus on the following *technologies*:
5050
- **Frame Fields**. 3 modules are currenly dedicated to the usage of frame fields fo meshing
51-
- the [frame](docs/mkdocs/user-guide/frame.md) module provides algorithms for 2D meshing. It relies on the notion of cross fields (see the [math](math/README.md) component for cross definitions). Output of this module are 2D cross fields defined on an input simplex mesh.
51+
- the [frame](docs/mkdocs/user-guide/frame.md) module provides algorithms for 2D meshing. It relies on the notion of cross fields (see the [math](core/math/README.md) component for cross definitions). Output of this module are 2D cross fields defined on an input simplex mesh.
5252
- the [singGraphBuild](docs/mkdocs/user-guide/singgraphbuild.md) module provides algorithm to extract the **base complex** structure of a 2D frame field
5353
- the [frame3d](docs/mkdocs/user-guide/frame3d.md) module provides algorithms for 3D frame field generation. Unlike the 2D case, we are not able to generate a full block structure but such fields are used to drive hybrid mesh generation and point generation algorithms.
5454
- [Overlay grids algorithms](docs/mkdocs/user-guide/elg3d.md).
5555
- [Sheet operations](docs/mkdocs/user-guide/sheet.md). This module provides sheet operations for quad and hex meshes.
56-
### A service-based approach
57-
In order to build and prototype secure pipeline algorithms, we propose a **service** module to assemble our algorithms into a verified and dynamically-secured pipeline. We strongly believe that a main drawback of research but also production codes is that they're are written by researchers in mathematics, physics or computer science who focuses on the application "business" without taking care of "software engineering". This is quite usual and understandable but such a behaviour has 2 main consequences:
58-
1. Codes are not
59-
### Algorithms for quad and hex meshing
60-
GMDS is our ma robust enough because the specification of their input and output are often fuzzy, only known by the main developer;
61-
2. It is difficult to reuse an algorithm written by someone else.
62-
63-
The **service** module is an answer to this issue. Input and output of each service must be totally specified using a constraint system that is dynamically checked at execution time.
6456
6557
## Users and developers documentation
6658
67-
Documentation is under construction. we just start to write it. It is split between:
68-
- [Users documentation](docs/mkd/users_doc.md), which is dedicated to people who want to use **gmds** as a set of libraries but do not expect to contribute to it.
69-
- [Developers documentation](docs/mkd/developers_doc.md), which is dedicated to developers who would like to create a new *gmds* module for instance. In particular, we explain the [git workflow](docs/mkd/git_workflow.md) that we adopted.
70-
- Gitub pages are under construction and available [here](https://lihpc-computational-geometry.github.io/gmds).
71-
- The associated doygen documenation is [here](https://lihpc-computational-geometry.github.io/gmds/doxygen/index.html).
59+
Documentation is under construction, you can see it [here](https://lihpc-computational-geometry.github.io/gmds). The associated doygen documenation is [here](https://lihpc-computational-geometry.github.io/gmds/doxygen/index.html).

0 commit comments

Comments
 (0)