salvus.project.meshing
Meshing functionality for SalvusProject.
Functions
mesh_cartesian_ocean_lm()
mesh_cartesian_ocean_lm()def mesh_cartesian_ocean_lm(
domain: salvus.project.domain.Domain,
background_model: salvus.project.configuration.model.background._BackgroundBase,
min_vertical_coordinate: float,
max_vertical_coordinate: float,
mesh_configuration: salvus.project.configuration.mesh_configuration.MeshConfiguration,
topography_configuration: Optional[
salvus.project.configuration.topography._TopographyConfigurationInternal
],
bathymetry_configuration: Optional[
salvus.project.configuration.bathymetry._BathymetryConfigurationInternal
],
bm_shift: float = 0.0,
interlayer_coarsening_policy: Optional[InterlayerCoarseningPolicy] = None,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
...Mesh 2- or 3-D cartesian domain with oceans using the layered mesher.
Parameters
domainsalvus.project.domain.Domain — The domain.background_modelsalvus.project.configuration.model.background._BackgroundBase — The background model.min_vertical_coordinatefloat — The minimum vertical coordinate in the mesh.max_vertical_coordinatefloat — The maximum vertical coordinate in the mesh.mesh_configurationsalvus.project.configuration.mesh_configuration.MeshConfiguration — The mesh configuration.topography_configurationOptional[salvus.project.configuration.topography._TopographyConfigurationInternal] — The topography configuration.bathymetry_configurationOptional[salvus.project.configuration.bathymetry._BathymetryConfigurationInternal] — The bathymetry configuration.bm_shiftfloat — For UTM domains — shift away from the reference datum.interlayer_coarsening_policyOptional[InterlayerCoarseningPolicy] — An optional interlayer coarsening policy that allows for overriding the defaultInterlayerDoublingpolicy. Can be useful for challenging meshes with thin layers.
Returns salvus.mesh.unstructured_mesh.UnstructuredMesh — A cartesian mesh with oceans.
mesh_from_circular_domain()
mesh_from_circular_domain()def mesh_from_circular_domain(
domain: salvus.project.domain.dim2.CircularDomain,
topography: Optional[
salvus.project.configuration.topography._TopographyConfigurationInternal
],
bathymetry: Optional[
salvus.project.configuration.bathymetry._BathymetryConfigurationInternal
],
mesh_parameters: salvus.project.configuration.mesh_configuration.MeshConfiguration,
model: salvus.project.configuration.model._ModelConfigurationInternal,
verbosity: int = 1,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
...Build a mesh from a 2-D circular domain.
Parameters
domainsalvus.project.domain.dim2.CircularDomain — Domain.topographyOptional[salvus.project.configuration.topography._TopographyConfigurationInternal] — Topography configuration.bathymetryOptional[salvus.project.configuration.bathymetry._BathymetryConfigurationInternal] — Bathymetry configuration.mesh_parameterssalvus.project.configuration.mesh_configuration.MeshConfiguration — The mesh parameters.modelsalvus.project.configuration.model._ModelConfigurationInternal — The model configuration.verbosityint — Verbosity level.
Returns salvus.mesh.unstructured_mesh.UnstructuredMesh
mesh_from_domain()
mesh_from_domain()def mesh_from_domain(
domain: salvus.project.domain.Domain,
mesh_configuration: salvus.project.configuration.mesh_configuration.MeshConfiguration,
model_configuration: salvus.project.configuration.model._ModelConfigurationInternal,
topography_configuration: Optional[
salvus.project.configuration.topography._TopographyConfigurationInternal
] = None,
bathymetry_configuration: Optional[
salvus.project.configuration.bathymetry._BathymetryConfigurationInternal
] = None,
verbosity: int = 1,
interlayer_coarsening_policy: Optional[InterlayerCoarseningPolicy] = None,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
...Create a concrete unstructured mesh from a few pieces of information.
This function is the central entry point to generate meshes from whatever information is defined in the project. An important design aspect of this function is that it must be unit testable.
Parameters
domainsalvus.project.domain.Domain — The domain of interest.mesh_configurationsalvus.project.configuration.mesh_configuration.MeshConfiguration — All model independent mesh parameters.model_configurationsalvus.project.configuration.model._ModelConfigurationInternal — A set of background and volume models.topography_configurationOptional[salvus.project.configuration.topography._TopographyConfigurationInternal] — A list of topography models.bathymetry_configurationOptional[salvus.project.configuration.bathymetry._BathymetryConfigurationInternal] — A list of bathymetry models.verbosityint — Verbosity level of the operation.interlayer_coarsening_policyOptional[InterlayerCoarseningPolicy] — An optional interlayer coarsening policy that allows for overriding the defaultInterlayerDoublingpolicy. Can be useful for challenging meshes with thin layers. Currently only considered for meshes with bathymetry in cartesian domains.
Returns salvus.mesh.unstructured_mesh.UnstructuredMesh
mesh_from_spherical_polygon()
mesh_from_spherical_polygon()def mesh_from_spherical_polygon(
domain: salvus.project.domain.dim3.SphericalDomain,
topography: Optional[
salvus.project.configuration.topography._TopographyConfigurationInternal
],
bathymetry: Optional[
salvus.project.configuration.bathymetry._BathymetryConfigurationInternal
],
mesh_parameters: salvus.project.configuration.mesh_configuration.MeshConfiguration,
spherical_polygon: Optional[
salvus.project.domain.spherical_geometry.polygon.SphericalPolygon
],
model: salvus.project.configuration.model._ModelConfigurationInternal,
verbosity: int = 1,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
...Build a mesh from a spherical polygon.
Parameters
domainsalvus.project.domain.dim3.SphericalDomain — Domain.topographyOptional[salvus.project.configuration.topography._TopographyConfigurationInternal] — Topography configuration.bathymetryOptional[salvus.project.configuration.bathymetry._BathymetryConfigurationInternal] — Bathymetry configuration.mesh_parameterssalvus.project.configuration.mesh_configuration.MeshConfiguration — The mesh parameters.spherical_polygonOptional[salvus.project.domain.spherical_geometry.polygon.SphericalPolygon] — The spherical polygon to use.modelsalvus.project.configuration.model._ModelConfigurationInternal — The model configuration.verbosityint — Verbosity level.
Returns salvus.mesh.unstructured_mesh.UnstructuredMesh
simple_mesh_selector()
simple_mesh_selector()def simple_mesh_selector(
domain: salvus.project.domain.Domain,
background_model: salvus.project.configuration.model.background._BackgroundBase,
min_vertical_coordinate: float,
max_vertical_coordinate: float,
mesh_configuration: salvus.project.configuration.mesh_configuration.MeshConfiguration,
bm_shift: float = 0.0,
) -> salvus.mesh.unstructured_mesh.UnstructuredMesh:
...Helper function to construct meshes from domains and other parameters.
Parameters
domainsalvus.project.domain.Domain — Domain.background_modelsalvus.project.configuration.model.background._BackgroundBase — Background model.min_vertical_coordinatefloat — The minimum vertical coordinate in the mesh.max_vertical_coordinatefloat — The maximum vertical coordinate in the mesh.mesh_configurationsalvus.project.configuration.mesh_configuration.MeshConfiguration — The mesh configuration.bm_shiftfloat — For UTM domains — shift away from the reference datum.
Returns salvus.mesh.unstructured_mesh.UnstructuredMesh