Two major changes in this version. First stroid now embeds a vacuum coordinate as part of its StroidMesh file (this is a packed set of mfem meshes and GridFunction). This is a logical coordinate from 0 at the stellar surface to 1 at the mesh surface / compactified infinity which can be used by consumers to much more stablly infer position in the vacuum region. Second, there is a new topology backend, multi_block, which has been made the default. See the readme for more information but the basic jist is that multi_block addes 6 transition blocks onto the edge of the core domain. This allows for a much more well conditioned transition from the internal cartesien region to the external spherical region. The mesh conditioning improves by roughly a factor of 1000 for the same refinement level when compared to the legacy topology. The legacy topology is maintained as a option if core_mapping is set to spherified in the config.
23 lines
657 B
Meson
23 lines
657 B
Meson
mfem_dep = dependency('mfem', required : false)
|
|
|
|
if not mfem_dep.found()
|
|
cmake = import('cmake')
|
|
mfem_cmake_options = cmake.subproject_options()
|
|
mfem_cmake_options.add_cmake_defines({
|
|
'MFEM_ENABLE_EXAMPLES': 'OFF',
|
|
'MFEM_ENABLE_TESTING': 'OFF',
|
|
'MFEM_ENABLE_MINIAPPS': 'OFF',
|
|
'MFEM_USE_BENCMARK': 'OFF',
|
|
'BUILD_SHARED_LIBS': 'OFF',
|
|
'BUILD_STATIC_LIBS': 'ON',
|
|
})
|
|
mfem_cmake_options.set_install(true)
|
|
|
|
mfem_sp = cmake.subproject(
|
|
'mfem',
|
|
options: mfem_cmake_options)
|
|
mfem_dep = mfem_sp.dependency('mfem')
|
|
else
|
|
message('Using system-installed MFEM library')
|
|
endif
|