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.
34 lines
796 B
Meson
34 lines
796 B
Meson
project('stroid', 'cpp', meson_version : '>= 1.3.0', version : 'v0.5.0', default_options : ['cpp_std=c++23'])
|
|
|
|
subdir('build-check')
|
|
|
|
subdir('build-config')
|
|
subdir('src')
|
|
|
|
if get_option('build_tests')
|
|
subdir('tests')
|
|
endif
|
|
|
|
if get_option('build_tools')
|
|
subdir('tools')
|
|
endif
|
|
|
|
if get_option('build_python')
|
|
subdir('build-python')
|
|
endif
|
|
|
|
if get_option('pkg_config')
|
|
pkg = import('pkgconfig')
|
|
pkg.generate(
|
|
name: 'stroid',
|
|
description: 'Stroid multi-block curvilinear mesh generation library',
|
|
version: meson.project_version(),
|
|
libraries: [
|
|
libstroid
|
|
],
|
|
subdirs: ['stroid'],
|
|
filebase: 'stroid',
|
|
install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
|
|
requires: ['fourdst_config']
|
|
)
|
|
endif |