stroid v0.1.0
Multi-block curvilinear mesh generation
Loading...
Searching...
No Matches
stroid::topology Namespace Reference

Functions

void PromoteToHighOrder (mfem::Mesh &mesh, const fourdst::config::Config< config::MeshConfig > &config)
 Promote a mesh to high-order by attaching an H1 nodal finite element space.
 
void ProjectMesh (mfem::Mesh &mesh, const fourdst::config::Config< config::MeshConfig > &config)
 Project high-order mesh nodes using the configured curvilinear mapping.
 
void ApplyEquiangular (mfem::Vector &pos)
 Apply an equiangular (gnomonic) projection to a point on a cube.
 
void ApplySpheroidal (mfem::Vector &pos, const fourdst::config::Config< config::MeshConfig > &config)
 Apply spheroidal flattening along the Z axis.
 
void ApplyKelvin (mfem::Vector &pos, const fourdst::config::Config< config::MeshConfig > &config)
 Apply Kelvin transform outside the stellar radius.
 
void TransformPoint (mfem::Vector &pos, const fourdst::config::Config< config::MeshConfig > &config, int attribute_id)
 Map a point from the initial block topology to the curvilinear domain.
 
std::unique_ptr< mfem::Mesh > BuildSkeleton (const fourdst::config::Config< config::MeshConfig > &config)
 Build the initial multi-block mesh topology for the star model.
 
void Finalize (mfem::Mesh &mesh, const fourdst::config::Config< config::MeshConfig > &config)
 Finalize topology, validate orientation, and apply uniform refinement.
 

Function Documentation

◆ ApplyEquiangular()

void stroid::topology::ApplyEquiangular ( mfem::Vector & pos)

Apply an equiangular (gnomonic) projection to a point on a cube.

Parameters
posPosition vector updated in-place.

◆ ApplyKelvin()

void stroid::topology::ApplyKelvin ( mfem::Vector & pos,
const fourdst::config::Config< config::MeshConfig > & config )

Apply Kelvin transform outside the stellar radius.

Parameters
posPosition vector updated in-place.
configMesh configuration (uses r_star and r_infinity).

◆ ApplySpheroidal()

void stroid::topology::ApplySpheroidal ( mfem::Vector & pos,
const fourdst::config::Config< config::MeshConfig > & config )

Apply spheroidal flattening along the Z axis.

Parameters
posPosition vector updated in-place.
configMesh configuration (uses flattening).

◆ BuildSkeleton()

std::unique_ptr< mfem::Mesh > stroid::topology::BuildSkeleton ( const fourdst::config::Config< config::MeshConfig > & config)

Build the initial multi-block mesh topology for the star model.

Parameters
configMesh configuration (uses radii and domain flags).
Returns
Newly allocated mesh skeleton (not yet refined or curved).

◆ Finalize()

void stroid::topology::Finalize ( mfem::Mesh & mesh,
const fourdst::config::Config< config::MeshConfig > & config )

Finalize topology, validate orientation, and apply uniform refinement.

Parameters
meshMesh to finalize in-place.
configMesh configuration (uses refinement_levels).

◆ ProjectMesh()

void stroid::topology::ProjectMesh ( mfem::Mesh & mesh,
const fourdst::config::Config< config::MeshConfig > & config )

Project high-order mesh nodes using the configured curvilinear mapping.

Requires nodes to be present (call PromoteToHighOrder first).

Parameters
meshMesh to update in-place.
configMesh configuration (uses radii, flattening, and mapping parameters).

◆ PromoteToHighOrder()

void stroid::topology::PromoteToHighOrder ( mfem::Mesh & mesh,
const fourdst::config::Config< config::MeshConfig > & config )

Promote a mesh to high-order by attaching an H1 nodal finite element space.

Parameters
meshMesh to update in-place.
configMesh configuration (uses order).

◆ TransformPoint()

void stroid::topology::TransformPoint ( mfem::Vector & pos,
const fourdst::config::Config< config::MeshConfig > & config,
int attribute_id )

Map a point from the initial block topology to the curvilinear domain.

Parameters
posPosition vector updated in-place.
configMesh configuration (uses radii, flattening, instability radius, and core steepness).
attribute_idElement attribute ID (currently unused).