diff --git a/docs/html/Logo.png b/docs/html/Logo.png new file mode 100644 index 0000000..d4b94f0 Binary files /dev/null and b/docs/html/Logo.png differ diff --git a/docs/html/_logo_8png.html b/docs/html/_logo_8png.html new file mode 100644 index 0000000..65f9a4c --- /dev/null +++ b/docs/html/_logo_8png.html @@ -0,0 +1,117 @@ + + +
+ + + + +![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| ▼Nstroid | |
| ▼Nconfig | |
| CMeshConfig | Configuration parameters for stroid mesh generation |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
+Classes | |
| struct | stroid::config::MeshConfig |
| Configuration parameters for stroid mesh generation. More... | |
+Namespaces | |
| namespace | stroid |
| namespace | stroid::config |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
#include "stroid/topology/curvilinear.h"#include "stroid/topology/mapping.h"#include <iostream>#include <memory>+Namespaces | |
| namespace | stroid |
| namespace | stroid::topology |
+Functions | |
| 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. | |
| void | stroid::topology::ProjectMesh (mfem::Mesh &mesh, const fourdst::config::Config< config::MeshConfig > &config) |
| Project high-order mesh nodes using the configured curvilinear mapping. | |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
+Namespaces | |
| namespace | stroid |
| namespace | stroid::topology |
+Functions | |
| 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. | |
| void | stroid::topology::ProjectMesh (mfem::Mesh &mesh, const fourdst::config::Config< config::MeshConfig > &config) |
| Project high-order mesh nodes using the configured curvilinear mapping. | |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| File in src/lib | Includes file in src/include |
|---|---|
| IO / mesh.cpp | stroid / config / config.h |
| IO / mesh.cpp | stroid / IO / mesh.h |
| topology / curvilinear.cpp | stroid / topology / curvilinear.h |
| topology / curvilinear.cpp | stroid / topology / mapping.h |
| topology / mapping.cpp | stroid / topology / mapping.h |
| topology / topology.cpp | stroid / config / config.h |
| utils / mesh_utils.cpp | stroid / utils / mesh_utils.h |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| File in src/include/stroid/topology | Includes file in src/include/stroid/config |
|---|---|
| curvilinear.h | config.h |
| mapping.h | config.h |
| topology.h | config.h |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| File in src/lib/topology | Includes file in src/include |
|---|---|
| curvilinear.cpp | stroid / topology / curvilinear.h |
| curvilinear.cpp | stroid / topology / mapping.h |
| mapping.cpp | stroid / topology / mapping.h |
| topology.cpp | stroid / config / config.h |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| File in src/lib/utils | Includes file in src/include |
|---|---|
| mesh_utils.cpp | stroid / utils / mesh_utils.h |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
+Directories | |
| static | |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
+Files | |
| curvilinear.cpp | |
| mapping.cpp | |
| topology.cpp | |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
+Files | |
| curvilinear.h | |
| mapping.h | |
| topology.h | |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
| ▼ docs | |
| ▼ static | |
| Logo.png | |
| ▼ src | |
| ▼ include | |
| ▼ stroid | |
| ▼ config | |
| config.h | |
| ▼ IO | |
| mesh.h | |
| ▼ topology | |
| curvilinear.h | |
| mapping.h | |
| topology.h | |
| ▼ utils | |
| mesh_utils.h | |
| ▼ lib | |
| ▼ IO | |
| mesh.cpp | |
| ▼ topology | |
| curvilinear.cpp | |
| mapping.cpp | |
| topology.cpp | |
| ▼ utils | |
| mesh_utils.cpp |
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
This page explains how to interpret the graphs that are generated by doxygen.
+Consider the following example:
This will result in the following graph:
+The boxes in the above graph have the following meaning:
+The arrows have the following meaning:
+![]() |
+
+ stroid v0.1.0
+
+ Multi-block curvilinear mesh generation
+ |
+
Stroid is a simple multi-block mesh generation tool designed to generate multi-domain meshes for 3D finite element modeling of stellar physics. It uses the MFEM library for mesh generation and manipulation and is capable of generating high-order curvilinear and non-singular meshes.
+++Note: Stroid is under active development and is not yet stable. Features and interfaces may change in future releases.
+
Stroid uses meson as its build system, specifically we require version 1.3.0 or higher. Further, stroid depends on C++23 standard library features, so both a compatible compiler and standard template library are required. All other dependencies are handled by meson and will be downloaded and built automatically.
+Stroid can be used either from the command line or from C++. The command line interface is the simplest way to get started. After installation, the stroid generate command should be available in your terminal.
The main way to interface with this is through the subcommands (currently only generate and info are available):
to save the default configuration to a file named default.toml
Stroid uses a TOML configuration file to specify the parameters for mesh generation. An example configuration file is found below
+| Parameter | Description | Default |
|---|---|---|
| refinement_levels | Number of uniform refinement levels to apply to the mesh after generation | 4 |
| order | The polynomial order of the finite elements in the mesh | 3 |
| include_external_domain | Whether to include an external domain extending to r_infinity | false |
| r_core | The radius of the core region of the star | 1.5 |
| r_star | The radius of the star | 5.0 |
| flattening | The flattening factor of the star (0 for spherical, >0 for oblate) | 0 |
| r_infinity | The outer radius of the external domain (if included) | 6.0 |
| r_instability | The radius at which no transformations are applied to the initial topology (to avoid singularities) | 1e-14 |
| core_steepness | The steepness of the transition between the core and envelope regions of the star | 1.0 |
If no configuration file is provided, stroid will use the default parameters listed above. Further, configuration files need only include parameters that differ from the defaults, any parameters not specified will use the default values.
+Stroid can be used as a library in C++ projects. After installation, include the stroid header and link against the stroid library.
+A basic example of using stroid in C++ is shown below (note that you will need a glvis instance running on localhost:19916 to visualize the mesh):
An example mesh with the default configuration parameters is shown below (coloration indicates attribute IDs of different regions): 
Stroid is developed as part of the 4D-STAR project.
+4D-STAR is funded by European Research Council (ERC) under the Horizon Europe programme (Synergy Grant agreement No. 101071505: 4D-STAR) Work for this project is funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council.
+