<p>Welcome to the documentation for 4DSSE (4D Stellar Structure and Evolution), a new code designed for simulating stellar phenomena in three spatial dimensions plus time. This project is currently under active development.</p>
<p>The primary goal of 4DSSE is to provide a flexible and extensible framework for advanced stellar modeling, incorporating modern numerical techniques and physics modules.</p>
<h1><aclass="anchor"id="build_sec"></a>
Building 4DSSE</h1>
<p>The project uses Meson as its build system. MFEM is a core dependency and will be automatically downloaded and built if not found.</p>
<p><b>Prerequisites:</b></p><ul>
<li>A C++ compiler (supporting C++17 or later)</li>
<li>Meson (Install via pip: <code>pip install meson</code>)</li>
<li>Python 3</li>
</ul>
<p><b>Build Steps:</b></p>
<oltype="1">
<li><b>Clone the repository (if you haven't already):</b><code>bash git clone <repository-url> cd 4dsse </code></li>
<li><b>Using the <code>mk</code> script (recommended for ease of use):</b><ul>
<li>To build the project: <code>bash ./mk </code></li>
<li>To build without tests: <code>bash ./mk --noTest </code></li>
</ul>
</li>
<li><b>Using the <code>4DSSEConsole.sh</code> script:</b> This script provides a simple interface for building and debugging. <code>bash ./4DSSEConsole.sh </code> Follow the on-screen prompts.</li>
<li>Compile the project: <code>bash meson compile -C build </code></li>
<li>To run tests (if built with tests enabled): <code>bash meson test -C build </code></li>
</ul>
</li>
</ol>
<p>The compiled executables and libraries will typically be found in the <code>build</code> directory.</p>
<h1><aclass="anchor"id="usage_sec"></a>
High-Level Usage Examples</h1>
<p>Below are some high-level examples of how to use key components of 4DSSE.</p>
<h2><aclass="anchor"id="usage_polysolver"></a>
Solving for a Polytrope</h2>
<p>The <code><aclass="el"href="class_poly_solver.html"title="Solves the Lane-Emden equation for a polytropic star using a mixed finite element method.">PolySolver</a></code> class handles the setup and solution of the Lane-Emden equation for polytropic stellar models.</p>
<divclass="line"><spanclass="preprocessor">#include "<aclass="code"href="config_8h.html">config.h</a>"</span><spanclass="comment">// For global configuration</span></div>
<divclass="line"><spanclass="preprocessor">#include "<aclass="code"href="probe_8h.html">probe.h</a>"</span><spanclass="comment">// For logging</span></div>
<divclass="ttc"id="aclass_poly_solver_html"><divclass="ttname"><ahref="class_poly_solver.html">PolySolver</a></div><divclass="ttdoc">Solves the Lane-Emden equation for a polytropic star using a mixed finite element method.</div><divclass="ttdef"><b>Definition</b><ahref="poly_solver_8h_source.html#l00200">polySolver.h:200</a></div></div>
<divclass="ttc"id="aclass_probe_1_1_log_manager_html_a5a12a541a9a7ca7f848ff385fb729c1d"><divclass="ttname"><ahref="class_probe_1_1_log_manager.html#a5a12a541a9a7ca7f848ff385fb729c1d">Probe::LogManager::getLogger</a></div><divclass="ttdeci">quill::Logger * getLogger(const std::string &loggerName)</div><divclass="ttdoc">Get a logger by name.</div><divclass="ttdef"><b>Definition</b><ahref="probe_8cpp_source.html#l00219">probe.cpp:219</a></div></div>
<divclass="ttc"id="aclass_probe_1_1_log_manager_html_adddabc01655308e7e62d8d3bd1b15386"><divclass="ttname"><ahref="class_probe_1_1_log_manager.html#adddabc01655308e7e62d8d3bd1b15386">Probe::LogManager::getInstance</a></div><divclass="ttdeci">static LogManager & getInstance()</div><divclass="ttdoc">Get the singleton instance of LogManager.</div><divclass="ttdef"><b>Definition</b><ahref="probe_8h_source.html#l00103">probe.h:103</a></div></div>
<divclass="line"><spanclass="comment">// Define symbols and their mass fractions</span></div>
<divclass="line"> std::vector<std::string> symbols = {<spanclass="stringliteral">"H-1"</span>, <spanclass="stringliteral">"He-4"</span>}; <spanclass="comment">// Use specific isotopes</span></div>
<divclass="line"><spanclass="preprocessor">#include "<aclass="code"href="approx8_8h.html">approx8.h</a>"</span><spanclass="comment">// Specific network implementation</span></div>
<divclass="line"><aclass="code hl_class"href="classnn_approx8_1_1_approx8_network.html">nnApprox8::Approx8Network</a> approx8_net; <spanclass="comment">// Using the Approx8 network</span></div>
<divclass="line"> approx8_net.<aclass="code hl_function"href="classnn_approx8_1_1_approx8_network.html#a11523cc90db255a50a9cecc0d794e5f8">setStiff</a>(<spanclass="keyword">true</span>); <spanclass="comment">// Example: use stiff solver</span></div>
<divclass="ttc"id="aapprox8_8h_html"><divclass="ttname"><ahref="approx8_8h.html">approx8.h</a></div><divclass="ttdoc">Header file for the Approx8 nuclear reaction network.</div></div>
<divclass="ttc"id="aclassnn_approx8_1_1_approx8_network_html"><divclass="ttname"><ahref="classnn_approx8_1_1_approx8_network.html">nnApprox8::Approx8Network</a></div><divclass="ttdoc">Class for the Approx8 nuclear reaction network.</div><divclass="ttdef"><b>Definition</b><ahref="approx8_8h_source.html#l00297">approx8.h:297</a></div></div>
<divclass="ttc"id="aclassnn_approx8_1_1_approx8_network_html_a11523cc90db255a50a9cecc0d794e5f8"><divclass="ttname"><ahref="classnn_approx8_1_1_approx8_network.html#a11523cc90db255a50a9cecc0d794e5f8">nnApprox8::Approx8Network::setStiff</a></div><divclass="ttdeci">void setStiff(bool stiff)</div><divclass="ttdoc">Sets whether the solver should use a stiff method.</div><divclass="ttdef"><b>Definition</b><ahref="approx8_8cpp_source.html#l00505">approx8.cpp:505</a></div></div>
<divclass="ttc"id="aclassnn_approx8_1_1_approx8_network_html_a31b8a20338d18123eca6e644f6e72366"><divclass="ttname"><ahref="classnn_approx8_1_1_approx8_network.html#a31b8a20338d18123eca6e644f6e72366">nnApprox8::Approx8Network::evaluate</a></div><divclass="ttdeci">virtual nuclearNetwork::NetOut evaluate(const nuclearNetwork::NetIn &netIn)</div><divclass="ttdoc">Evaluates the nuclear network.</div><divclass="ttdef"><b>Definition</b><ahref="approx8_8cpp_source.html#l00447">approx8.cpp:447</a></div></div>
<divclass="ttc"id="astructnn_approx8_1_1_net_html_a86ed8213cf2fffe5dcd7f06bdb6a6186"><divclass="ttname"><ahref="structnn_approx8_1_1_net.html#a86ed8213cf2fffe5dcd7f06bdb6a6186">nnApprox8::Net::ih1</a></div><divclass="ttdeci">static const int ih1</div><divclass="ttdef"><b>Definition</b><ahref="approx8_8h_source.html#l00065">approx8.h:65</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_in_html"><divclass="ttname"><ahref="structnuclear_network_1_1_net_in.html">nuclearNetwork::NetIn</a></div><divclass="ttdoc">Input structure for the network evaluation.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00048">network.h:48</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_in_html_a4390cc59d2a9bd0d265163aa6e38c6c2"><divclass="ttname"><ahref="structnuclear_network_1_1_net_in.html#a4390cc59d2a9bd0d265163aa6e38c6c2">nuclearNetwork::NetIn::composition</a></div><divclass="ttdeci">std::vector< double > composition</div><divclass="ttdoc">Composition of the network.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00049">network.h:49</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_in_html_a987cb42b169b0e503515a8c62e242b97"><divclass="ttname"><ahref="structnuclear_network_1_1_net_in.html#a987cb42b169b0e503515a8c62e242b97">nuclearNetwork::NetIn::density</a></div><divclass="ttdeci">double density</div><divclass="ttdoc">Density in g/cm^3.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00053">network.h:53</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_in_html_a9b9cbf0364977eca8425b191e34a7a97"><divclass="ttname"><ahref="structnuclear_network_1_1_net_in.html#a9b9cbf0364977eca8425b191e34a7a97">nuclearNetwork::NetIn::temperature</a></div><divclass="ttdeci">double temperature</div><divclass="ttdoc">Temperature in Kelvin.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00052">network.h:52</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_in_html_aa55b1d6cd458b69afb89cb096e661d9b"><divclass="ttname"><ahref="structnuclear_network_1_1_net_in.html#aa55b1d6cd458b69afb89cb096e661d9b">nuclearNetwork::NetIn::dt0</a></div><divclass="ttdeci">double dt0</div><divclass="ttdoc">Initial time step.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00051">network.h:51</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_out_html"><divclass="ttname"><ahref="structnuclear_network_1_1_net_out.html">nuclearNetwork::NetOut</a></div><divclass="ttdoc">Output structure for the network evaluation.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00071">network.h:71</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_out_html_a84c19198ae5cb48527b2d19f61fa160f"><divclass="ttname"><ahref="structnuclear_network_1_1_net_out.html#a84c19198ae5cb48527b2d19f61fa160f">nuclearNetwork::NetOut::composition</a></div><divclass="ttdeci">std::vector< double > composition</div><divclass="ttdoc">Composition of the network after evaluation.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00072">network.h:72</a></div></div>
<divclass="ttc"id="astructnuclear_network_1_1_net_out_html_aee71b459be94519bac05986cfb47210a"><divclass="ttname"><ahref="structnuclear_network_1_1_net_out.html#aee71b459be94519bac05986cfb47210a">nuclearNetwork::NetOut::num_steps</a></div><divclass="ttdeci">int num_steps</div><divclass="ttdoc">Number of steps taken in the evaluation.</div><divclass="ttdef"><b>Definition</b><ahref="network_8h_source.html#l00073">network.h:73</a></div></div>
</div><!-- fragment --><h2><aclass="anchor"id="usage_constants"></a>
Accessing Physical Constants</h2>
<p>The <code><aclass="el"href="class_constants.html"title="Class to manage a collection of constants.">Constants</a></code> singleton provides access to a database of physical constants.</p>
<divclass="line"><aclass="code hl_struct"href="struct_constant.html">Constant</a> c = consts[<spanclass="stringliteral">"Speed of light in vacuum"</span>]; <spanclass="comment">// Can also use operator[]</span></div>
<divclass="ttc"id="aclass_constants_html"><divclass="ttname"><ahref="class_constants.html">Constants</a></div><divclass="ttdoc">Class to manage a collection of constants.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00066">const.h:66</a></div></div>
<divclass="ttc"id="aclass_constants_html_a36ddd7fe6857d1bbf6d1c84d4ed7bc19"><divclass="ttname"><ahref="class_constants.html#a36ddd7fe6857d1bbf6d1c84d4ed7bc19">Constants::get</a></div><divclass="ttdeci">Constant get(const std::string &key) const</div><divclass="ttdoc">Get a constant by key.</div><divclass="ttdef"><b>Definition</b><ahref="const_8cpp_source.html#l00041">const.cpp:41</a></div></div>
<divclass="ttc"id="aclass_constants_html_ab302ea5420378c55a9e5f116d19ae0e2"><divclass="ttname"><ahref="class_constants.html#ab302ea5420378c55a9e5f116d19ae0e2">Constants::getInstance</a></div><divclass="ttdeci">static Constants & getInstance()</div><divclass="ttdoc">get instance of constants singelton</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00102">const.h:102</a></div></div>
<divclass="ttc"id="aclass_constants_html_ae276dfdc0ffe75a53e3842e33ab52630"><divclass="ttname"><ahref="class_constants.html#ae276dfdc0ffe75a53e3842e33ab52630">Constants::isLoaded</a></div><divclass="ttdeci">bool isLoaded()</div><divclass="ttdoc">Check if constants are loaded.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00111">const.h:111</a></div></div>
<divclass="ttc"id="astruct_constant_html"><divclass="ttname"><ahref="struct_constant.html">Constant</a></div><divclass="ttdoc">Structure to hold a constant's details.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00034">const.h:34</a></div></div>
<divclass="ttc"id="astruct_constant_html_a2c46956a2d2b0ebf78ff99c5971130d2"><divclass="ttname"><ahref="struct_constant.html#a2c46956a2d2b0ebf78ff99c5971130d2">Constant::unit</a></div><divclass="ttdeci">const std::string unit</div><divclass="ttdoc">Unit of the constant.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00038">const.h:38</a></div></div>
<divclass="ttc"id="astruct_constant_html_a3bda8d7fadd6fb2510fd39962a065a02"><divclass="ttname"><ahref="struct_constant.html#a3bda8d7fadd6fb2510fd39962a065a02">Constant::value</a></div><divclass="ttdeci">const double value</div><divclass="ttdoc">Value of the constant.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00036">const.h:36</a></div></div>
<divclass="ttc"id="astruct_constant_html_a8d8d2a81e9a8f36dfa02b4d23a5be55c"><divclass="ttname"><ahref="struct_constant.html#a8d8d2a81e9a8f36dfa02b4d23a5be55c">Constant::name</a></div><divclass="ttdeci">const std::string name</div><divclass="ttdoc">Name of the constant.</div><divclass="ttdef"><b>Definition</b><ahref="const_8h_source.html#l00035">const.h:35</a></div></div>
</div><!-- fragment --><h2><aclass="anchor"id="usage_config"></a>
Configuration Management</h2>
<p>The <code><aclass="el"href="class_config.html"title="Singleton class to manage configuration settings loaded from a YAML file.">Config</a></code> singleton manages settings from a YAML configuration file.</p>
<divclass="ttc"id="aclass_config_html"><divclass="ttname"><ahref="class_config.html">Config</a></div><divclass="ttdoc">Singleton class to manage configuration settings loaded from a YAML file.</div></div>
</div><!-- fragment --><h2><aclass="anchor"id="usage_logging"></a>
Logging</h2>
<p>The <code><aclass="el"href="class_probe_1_1_log_manager.html"title="Class to manage logging operations.">Probe::LogManager</a></code> provides a way to manage and use loggers.</p>
<divclass="line"><spanclass="preprocessor">#include "<aclass="code"href="config_8h.html">config.h</a>"</span><spanclass="comment">// Often used to configure logging</span></div>
<divclass="ttc"id="aclass_probe_1_1_log_manager_html"><divclass="ttname"><ahref="class_probe_1_1_log_manager.html">Probe::LogManager</a></div><divclass="ttdoc">Class to manage logging operations.</div><divclass="ttdef"><b>Definition</b><ahref="probe_8h_source.html#l00079">probe.h:79</a></div></div>
</div><!-- fragment --><h2><aclass="anchor"id="usage_eos"></a>
Equation of State (EOS)</h2>
<p>The <code><aclass="el"href="class_eos_i_o.html"title="Handles the input/output operations for EOS tables.">EosIO</a></code> class loads EOS tables, and the <code>helmholtz</code> namespace provides functions to use them, for example, the Helmholtz EOS.</p>
<divclass="line"><spanclass="comment">// Load the Helmholtz EOS table</span></div>
<divclass="line"><aclass="code hl_class"href="class_eos_i_o.html">EosIO</a> helm_eos_io(<spanclass="stringliteral">"path/to/helm_table.dat"</span>); <spanclass="comment">// Replace with actual path</span></div>
<divclass="line"> input.<aclass="code hl_variable"href="structhelmholtz_1_1_e_o_s_input.html#aaf02a656d4891857970b6bdf366a325c">T</a> = 1.0e7; <spanclass="comment">// Temperature in K</span></div>
<divclass="line"> input.<aclass="code hl_variable"href="structhelmholtz_1_1_e_o_s_input.html#ac049842880c38e1024929f14606b84d8">rho</a> = 100.0; <spanclass="comment">// Density in g/cm^3</span></div>
<divclass="line"> input.<aclass="code hl_variable"href="structhelmholtz_1_1_e_o_s_input.html#ad0bf9309ddc7f784eca932a02f0af8b8">abar</a> = 1.0; <spanclass="comment">// Mean atomic mass (e.g., for pure hydrogen)</span></div>
<divclass="line"> input.<aclass="code hl_variable"href="structhelmholtz_1_1_e_o_s_input.html#a982c267134079bb6315f274a5bee2209">zbar</a> = 1.0; <spanclass="comment">// Mean atomic number (e.g., for pure hydrogen)</span></div>
<divclass="line"></div>
<divclass="line"><spanclass="comment">// Get EOS results</span></div>
<divclass="ttc"id="aclass_eos_i_o_html"><divclass="ttname"><ahref="class_eos_i_o.html">EosIO</a></div><divclass="ttdoc">Handles the input/output operations for EOS tables.</div><divclass="ttdef"><b>Definition</b><ahref="eos_i_o_8h_source.html#l00049">eosIO.h:49</a></div></div>
<divclass="ttc"id="anamespacehelmholtz_html_ad2176033ca3ac4e5dc65f281477b94c2"><divclass="ttname"><ahref="namespacehelmholtz.html#ad2176033ca3ac4e5dc65f281477b94c2">helmholtz::get_helm_EOS</a></div><divclass="ttdeci">EOS get_helm_EOS(EOSInput &q, const HELMTable &table)</div><divclass="ttdoc">Calculate the Helmholtz EOS components.</div><divclass="ttdef"><b>Definition</b><ahref="helm_8cpp_source.html#l00236">helm.cpp:236</a></div></div>
<divclass="ttc"id="astructhelmholtz_1_1_e_o_s_html"><divclass="ttname"><ahref="structhelmholtz_1_1_e_o_s.html">helmholtz::EOS</a></div><divclass="ttdoc">Structure to hold the output parameters and derivatives of the EOS calculation.</div><divclass="ttdef"><b>Definition</b><ahref="helm_8h_source.html#l00311">helm.h:312</a></div></div>
<divclass="ttc"id="astructhelmholtz_1_1_e_o_s_input_html"><divclass="ttname"><ahref="structhelmholtz_1_1_e_o_s_input.html">helmholtz::EOSInput</a></div><divclass="ttdoc">Structure to hold the input parameters for the EOS calculation.</div><divclass="ttdef"><b>Definition</b><ahref="helm_8h_source.html#l00289">helm.h:290</a></div></div>
<divclass="ttc"id="astructhelmholtz_1_1_h_e_l_m_table_html"><divclass="ttname"><ahref="structhelmholtz_1_1_h_e_l_m_table.html">helmholtz::HELMTable</a></div><divclass="ttdoc">Structure to hold the Helmholtz EOS table data.</div><divclass="ttdef"><b>Definition</b><ahref="helm_8h_source.html#l00064">helm.h:65</a></div></div>
</div><!-- fragment --><h2><aclass="anchor"id="usage_meshio"></a>
Mesh Handling</h2>
<p>The <code><aclass="el"href="class_mesh_i_o.html"title="Class for handling mesh input/output operations.">MeshIO</a></code> class facilitates loading and managing computational meshes.</p>
<divclass="line"><spanclass="comment">// Initialize MeshIO with a mesh file and a scale factor</span></div>
<divclass="line"><aclass="code hl_class"href="class_mesh_i_o.html">MeshIO</a> mesh_handler(<spanclass="stringliteral">"path/to/your/mesh.msh"</span>, 1.0); <spanclass="comment">// Replace with actual path</span></div>
</div><!-- fragment --><h1><aclass="anchor"id="modules_sec"></a>
Key Modules and Components</h1>
<p>4DSSE is organized into several key modules:</p>
<ul>
<li><b>Polytrope Solver (<code><aclass="el"href="poly_solver_8h.html">polySolver.h</a></code>, <code><aclass="el"href="polytrope_operator_8h.html">polytropeOperator.h</a></code>):</b> Provides tools to solve the Lane-Emden equation for polytropic stellar structures using a mixed finite element method. <code><aclass="el"href="class_polytrope_operator.html"title="Represents the coupled nonlinear operator for the polytropic system.">PolytropeOperator</a></code> defines the nonlinear system and its Jacobian, while <code><aclass="el"href="class_poly_solver.html"title="Solves the Lane-Emden equation for a polytropic star using a mixed finite element method.">PolySolver</a></code> orchestrates the solution process. The <code><aclass="el"href="class_schur_compliment.html"title="Represents the Schur complement operator used in the solution process.">SchurCompliment</a></code> and <code><aclass="el"href="class_g_m_r_e_s_inverter.html"title="Provides an approximate inverse of the SchurCompliment operator using GMRES.">GMRESInverter</a></code> classes are helper components for the linear algebra involved.</li>
<li><b>Equation of State (EOS) (<code><aclass="el"href="helm_8h.html">helm.h</a></code>, <code><aclass="el"href="eos_i_o_8h.html">eosIO.h</a></code>):</b> Manages Equation of State data. <code><aclass="el"href="helm_8h.html">helm.h</a></code> provides an implementation of the Helmholtz EOS (Timmes & Swesty 2000), including structures for table data (<code>HELMTable</code>), input parameters (<code>EOSInput</code>), and output results (<code>EOS</code>). It also defines functions for reading tables and calculating EOS quantities. <code><aclass="el"href="eos_i_o_8h.html">eosIO.h</a></code> provides the <code><aclass="el"href="class_eos_i_o.html"title="Handles the input/output operations for EOS tables.">EosIO</a></code> class for loading EOS tables from files, currently supporting the HELM table format.</li>
<li><b>Chemical Composition (<code><aclass="el"href="composition_8h.html">composition.h</a></code>, <code>atomicSpecies.h</code>):</b> Manages chemical compositions, allowing representation in mass or number fractions. It interfaces with <code>atomicSpecies.h</code> which provides a database of atomic species properties (based on AME2020).</li>
<li><b>Nuclear Reaction Networks (<code><aclass="el"href="network_8h.html">network.h</a></code>, <code><aclass="el"href="approx8_8h.html"title="Header file for the Approx8 nuclear reaction network.">approx8.h</a></code>):</b> Defines a base <code>Network</code> class for nuclear reaction network calculations. <code><aclass="el"href="approx8_8h.html"title="Header file for the Approx8 nuclear reaction network.">approx8.h</a></code> provides a specific implementation, <code>Approx8Network</code>, for an 8-isotope network (H1, He3, He4, C12, N14, O16, Ne20, Mg24) based on Frank Timmes' "aprox8". It includes functions for individual reaction rates and uses Boost.Numeric.Odeint for solving the ODE system.</li>
<li><b>Physical <aclass="el"href="class_constants.html"title="Class to manage a collection of constants.">Constants</a> (<code><aclass="el"href="const_8h.html">const.h</a></code>):</b> A singleton class <code><aclass="el"href="class_constants.html"title="Class to manage a collection of constants.">Constants</a></code> that loads and provides access to a wide range of physical constants with their values, uncertainties, units, and references.</li>
<li><b>Configuration Management (<code><aclass="el"href="config_8h.html">config.h</a></code>):</b> A singleton class <code><aclass="el"href="class_config.html"title="Singleton class to manage configuration settings loaded from a YAML file.">Config</a></code> for loading and accessing application settings from YAML configuration files.</li>
<li><b>Probing and Logging (<code><aclass="el"href="probe_8h.html">probe.h</a></code>):</b> The <code><aclass="el"href="namespace_probe.html"title="The Probe namespace contains utility functions for debugging and logging.">Probe</a></code> namespace offers utility functions for debugging, such as GLVis visualization (<code>glVisView</code>), and a <code>LogManager</code> for handling application-wide logging using the Quill library.</li>
<li><b>Mesh I/O (<code><aclass="el"href="mesh_i_o_8h.html">meshIO.h</a></code>):</b> The <code><aclass="el"href="class_mesh_i_o.html"title="Class for handling mesh input/output operations.">MeshIO</a></code> class handles loading and basic manipulation (e.g., scaling) of computational meshes using MFEM's <code>mfem::Mesh</code>. It ensures that meshes are correctly loaded and accessible.</li>
<li><b>Integrators (<code><aclass="el"href="integrators_8h.html"title="A collection of utilities for working with MFEM and solving the lane-emden equation.">integrators.h</a></code>):</b> (Details inferred) Likely contains custom MFEM integrators or coefficients used in the finite element formulations.</li>
<li><b>Custom Types (<code><aclass="el"href="4_d_s_t_a_r_types_8h.html">4DSTARTypes.h</a></code>):</b> Defines project-specific data type aliases within the <code><aclass="el"href="namespace_s_s_e.html">SSE</a></code> namespace, primarily for simplifying common <code>std::pair</code> combinations involving <code>mfem::Array<int></code> and <code>mfem::Array<double></code>. These include <code><aclass="el"href="namespace_s_s_e.html#a49c89754543e0562250f33c3716689d8">SSE::MFEMArrayPair</a></code> and <code><aclass="el"href="namespace_s_s_e.html#a615e866fff824677bba4a6f23d15b446">SSE::MFEMArrayPairSet</a></code>, often used for managing collections of MFEM degree-of-freedom lists and their corresponding values, especially for boundary conditions.</li>
</ul>
<h1><aclass="anchor"id="future_dev"></a>
Future Development</h1>
<p>Future work will focus on expanding the physics modules (e.g., equation of state, opacity), improving numerical solvers, and enhancing the parallelization capabilities for large-scale simulations.</p>
<h1><aclass="anchor"id="contact_sec"></a>
Contact and Contributions</h1>
<p>For questions, bug reports, or contributions, please refer to the project's repository or contact the development team. (Details to be added) </p>
<liclass="footer">Generated by <ahref="https://www.doxygen.org/index.html"><imgclass="footer"src="doxygen.svg"width="104"height="31"alt="doxygen"/></a> 1.13.2 </li>