Compare commits

...

16 Commits

Author SHA1 Message Date
b00a64309b docs(docs): updated docs for version v0.2.0 2026-03-20 13:02:09 -04:00
4a692c08f4 fix(stroid): exit properly after stroid -v
previously calling stroid -v would print the version but then continue on the default run case, now both -v and -d result in an immediate exit after their tasks are done
2026-03-20 13:01:38 -04:00
d4fa557c64 feat(tools): Added winding visualization
A simple python helper script has been added to aid developers in visualizing the winding order of vertices
2026-03-20 13:00:45 -04:00
9e7370a051 build(version): version bump v0.1.0 -> v0.2.0
This version brings proper support for external domains
2026-03-20 12:59:57 -04:00
83b20110d0 test(configs): include new config files for new tests 2026-03-20 12:59:24 -04:00
3aaaf9ee3d test(tests): tests for vacuum region
Test suite has been updated to include a much more robust suite of tools for validating mesh quality and mesh usability (including but not limited to things such as validating that integrating over a sphere provides the correct volume, that the mesh is confirming, and that no elements are inverted)
2026-03-20 12:59:07 -04:00
b24e0377f6 feat(src): Enabled Vacuume Region Generation
Stroid can now generate vacuume regions. These are confirming spheres marked with a seperate attribute that solver may then apply arbitrary mappings to. Further, the boundary of this region is also marked with a seperate boundary attrite allowing seperate boundary conditions to easily be applied.
2026-03-20 12:57:47 -04:00
475fce5fca build(package): fixed xatters issues
macos tar adds xattrs which prevent unpacking on linux. removed these
2026-01-31 11:39:00 -05:00
a3b63a68d1 build(package): added package script
package script auto generates release archive
2026-01-31 11:27:58 -05:00
6a8fcc0290 feat(release): added macos release script 2026-01-31 11:12:52 -05:00
2db3d6e666 fix(linux): fixed linux compilation 2026-01-31 10:39:55 -05:00
e5bfd54234 fix(build-check): removed c lang
C is not used, just C++, removed c checks
2026-01-31 10:14:28 -05:00
d19a5ae36d feat(build-check): added setup checks for stl compatibility
build-check checks for print and format headers from stl
2026-01-31 10:12:52 -05:00
38150e3a8d docs(docs): rebuilt docs 2026-01-31 10:09:46 -05:00
5d61d1d755 docs(readme): uninstall directions 2026-01-31 10:09:18 -05:00
5267456dd4 refactor(stroid): changed default mesh format from VTU to MFEM 2026-01-31 10:05:06 -05:00
105 changed files with 2038 additions and 412 deletions

6
.gitignore vendored
View File

@@ -101,3 +101,9 @@ output/
.idea/
scratch/
releases/
stroid-dist/
stroid-universal-dist.tar.gz
stroid-*/
stroid-*.tar.gz

View File

@@ -48,7 +48,7 @@ PROJECT_NAME = stroid
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = v0.1.0
PROJECT_NUMBER = v0.2.0
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewers a

View File

@@ -0,0 +1,22 @@
cppc = meson.get_compiler('cpp')
if cppc.get_id() == 'clang'
message('disabling bitwise-instead-of-logical warnings for clang')
add_project_arguments('-Wno-bitwise-instead-of-logical', language: 'cpp')
endif
if cppc.get_id() == 'gcc'
message('disabling psabi warnings for gcc')
add_project_arguments('-Wno-psabi', language: 'cpp')
if (cppc.version().version_compare('<14.0'))
error('g++ version must be at least 14.0, found ' + cppc.version())
endif
endif
if not cppc.has_header('print')
error('C++ standard library header <print> not found. Please ensure your compiler and standard library supports C++23. We have already validated your compiler version so this is likely an issue with your standard library installation.')
endif
if not cppc.has_header('format')
error('C++ standard library header <format> not found. Please ensure your compiler and standard library supports C++23. We have already validated your compiler version so this is likely an issue with your standard library installation.')
endif

10
build-check/meson.build Normal file
View File

@@ -0,0 +1,10 @@
message('Found CXX compiler: ' + meson.get_compiler('cpp').get_id())
message('C++ standard set to: ' + get_option('cpp_std'))
ignore_unused_args = '-Wno-unused-command-line-argument'
add_global_arguments(ignore_unused_args, language: 'cpp')
subdir('CPPC')

View File

@@ -5,9 +5,10 @@ mfem_cmake_options.add_cmake_defines({
'MFEM_ENABLE_TESTING': 'OFF',
'MFEM_ENABLE_MINIAPPS': 'OFF',
'MFEM_USE_BENCMARK': 'OFF',
'BUILD_SHARED_LIBS': 'ON',
'CMAKE_SKIP_INSTALL_RULES': 'ON'
'BUILD_SHARED_LIBS': 'OFF',
'BUILD_STATIC_LIBS': 'ON',
})
mfem_cmake_options.set_install(true)
mfem_sp = cmake.subproject(
'mfem',

View File

@@ -2,9 +2,14 @@
core_steepness = 1.0
flattening = 0.0
include_external_domain = false
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 4
refinement_levels = 4
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -2,9 +2,14 @@
core_steepness = 1.0
flattening = 0.0
include_external_domain = true
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 4
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
core_steepness = 1.0
flattening = 0.0
include_external_domain = true
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 1
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -2,9 +2,14 @@
core_steepness = 1.0
flattening = 0.2
include_external_domain = false
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 4
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
core_steepness = 1.0
flattening = 0.0
include_external_domain = false
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 2
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
refinement_levels = 2
order = 3
include_external_domain = false
r_core = 1.5
r_star = 5.0
flattening = 0.08
r_infinity = 6.0
r_instability = 1e-14
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
refinement_levels = 2
order = 3
include_external_domain = false
r_core = 1.5
r_star = 5.0
flattening = 0.0
r_infinity = 6.0
r_instability = 1e-14
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
refinement_levels = 2
order = 3
include_external_domain = true
r_core = 1.5
r_star = 5.0
flattening = 0.0
r_infinity = 6.0
r_instability = 1e-14
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -0,0 +1,16 @@
[main]
refinement_levels = 2
order = 3
include_external_domain = true
r_core = 1.5
r_star = 5.0
flattening = 0.08
r_infinity = 6.0
r_instability = 1e-14
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -111,10 +111,11 @@ $(function(){initNavTree('curvilinear_8cpp.html',''); initResizable(true); });
<code>#include &quot;<a class="el" href="mapping_8h.html">stroid/topology/mapping.h</a>&quot;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;sys/proc.h&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for curvilinear.cpp:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="curvilinear_8cpp__incl.svg" width="575" height="184"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="curvilinear_8cpp__incl.svg" width="100%" height="438"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div></div>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>

View File

@@ -1,20 +1,22 @@
<map id="src/lib/topology/curvilinear.cpp" name="src/lib/topology/curvilinear.cpp">
<area shape="rect" id="Node000001" title=" " alt="" coords="271,5,467,31"/>
<area shape="rect" id="Node000002" href="$curvilinear_8h.html" title=" " alt="" coords="9,79,188,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="324,34,160,77,159,72,322,29"/>
<area shape="rect" id="Node000006" href="$mapping_8h.html" title=" " alt="" coords="212,79,382,105"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="359,33,322,70,318,66,355,29"/>
<area shape="rect" id="Node000007" title=" " alt="" coords="407,79,478,105"/>
<area shape="poly" id="edge9_Node000001_Node000007" title=" " alt="" coords="383,29,421,66,417,70,379,33"/>
<area shape="rect" id="Node000008" title=" " alt="" coords="502,79,570,105"/>
<area shape="poly" id="edge10_Node000001_Node000008" title=" " alt="" coords="398,29,494,70,492,75,396,34"/>
<area shape="rect" id="Node000001" title=" " alt="" coords="348,5,544,31"/>
<area shape="rect" id="Node000002" href="$curvilinear_8h.html" title=" " alt="" coords="207,79,387,105"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="424,31,337,74,335,69,418,32"/>
<area shape="rect" id="Node000006" href="$mapping_8h.html" title=" " alt="" coords="13,79,184,105"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="386,34,173,78,172,73,388,29"/>
<area shape="rect" id="Node000007" title=" " alt="" coords="411,79,482,105"/>
<area shape="poly" id="edge9_Node000001_Node000007" title=" " alt="" coords="448,29,449,65,444,62,445,33"/>
<area shape="rect" id="Node000008" title=" " alt="" coords="506,79,574,105"/>
<area shape="poly" id="edge10_Node000001_Node000008" title=" " alt="" coords="463,29,515,70,509,69,461,34"/>
<area shape="rect" id="Node000009" title=" " alt="" coords="598,79,681,105"/>
<area shape="poly" id="edge11_Node000001_Node000009" title=" " alt="" coords="479,29,595,73,590,73,479,34"/>
<area shape="rect" id="Node000003" title=" " alt="" coords="5,153,85,178"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="92,106,65,142,61,138,87,103"/>
<area shape="poly" id="edge2_Node000002_Node000003" title=" " alt="" coords="255,108,100,151,99,146,254,103"/>
<area shape="rect" id="Node000004" href="$config_8h.html" title=" " alt="" coords="108,153,251,178"/>
<area shape="poly" id="edge3_Node000002_Node000004" title=" " alt="" coords="114,103,156,140,153,144,110,107"/>
<area shape="poly" id="edge3_Node000002_Node000004" title=" " alt="" coords="280,105,214,147,211,142,275,106"/>
<area shape="rect" id="Node000005" title=" " alt="" coords="275,153,426,178"/>
<area shape="poly" id="edge4_Node000002_Node000005" title=" " alt="" coords="142,103,294,145,292,151,140,108"/>
<area shape="poly" id="edge6_Node000006_Node000003" title=" " alt="" coords="255,108,100,151,99,146,254,103"/>
<area shape="poly" id="edge7_Node000006_Node000004" title=" " alt="" coords="278,107,214,147,211,142,276,103"/>
<area shape="poly" id="edge8_Node000006_Node000005" title=" " alt="" coords="308,103,334,138,330,142,304,106"/>
<area shape="poly" id="edge4_Node000002_Node000005" title=" " alt="" coords="307,102,335,141,330,139,305,107"/>
<area shape="poly" id="edge6_Node000006_Node000003" title=" " alt="" coords="92,104,65,142,61,138,87,106"/>
<area shape="poly" id="edge7_Node000006_Node000004" title=" " alt="" coords="113,103,157,142,152,143,111,108"/>
<area shape="poly" id="edge8_Node000006_Node000005" title=" " alt="" coords="141,103,295,146,291,150,141,108"/>
</map>

View File

@@ -1 +1 @@
b8eef4875e081be998fbcbc84a3978b1
6950d4e2891a4c4f47ed638d27c5bf68

View File

@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 13.0.1 (20250615.1724)
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
-->
<!-- Title: src/lib/topology/curvilinear.cpp Pages: 1 -->
<svg width="431pt" height="138pt"
viewBox="0.00 0.00 431.00 138.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!--zoomable 138 -->
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.node, .edge {opacity: 0.7;}
@@ -15,16 +14,53 @@
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<defs>
<circle id="rim" cx="0" cy="0" r="7"/>
<circle id="rim2" cx="0" cy="0" r="3.5"/>
<g id="zoomPlus">
<use xlink:href="#rim" fill="#404040"><set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/></use>
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="zoomMin">
<use xlink:href="#rim" fill="#404040"><set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/></use>
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
</g>
<g id="arrowUp" transform="translate(30 24)">
<use xlink:href="#rim"/>
<path pointer-events="none" fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowRight" transform="rotate(90) translate(36 -43)">
<use xlink:href="#rim"/>
<path pointer-events="none" fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowDown" transform="rotate(180) translate(-30 -48)">
<use xlink:href="#rim"/>
<path pointer-events="none" fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="arrowLeft" transform="rotate(270) translate(-36 17)">
<use xlink:href="#rim"/>
<path pointer-events="none" fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
</g>
<g id="resetDef">
<use xlink:href="#rim2" fill="#404040"><set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/></use>
</g>
</defs>
<script type="application/ecmascript">
var viewWidth = 515;
var viewHeight = 138;
var sectionId = 'dynsection-0';
</script>
<script type="application/ecmascript" xlink:href="svg.min.js"/>
<svg id="graph" class="graph">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 133.75)">
<g id="viewport">
<title>src/lib/topology/curvilinear.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="346.38,-129.75 199.12,-129.75 199.12,-110.5 346.38,-110.5 346.38,-129.75"/>
<text xml:space="preserve" text-anchor="middle" x="272.75" y="-116.25" font-family="Helvetica,sans-Serif" font-size="10.00">src/lib/topology/curvilinear.cpp</text>
<polygon fill="#999999" stroke="#666666" points="404.38,-129.75 257.12,-129.75 257.12,-110.5 404.38,-110.5 404.38,-129.75"/>
<text xml:space="preserve" text-anchor="middle" x="330.75" y="-116.25" font-family="Helvetica,sans-Serif" font-size="10.00">src/lib/topology/curvilinear.cpp</text>
</a>
</g>
</g>
@@ -32,8 +68,8 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="curvilinear_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="137,-74.5 2.5,-74.5 2.5,-55.25 137,-55.25 137,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="69.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/curvilinear.h</text>
<polygon fill="white" stroke="#666666" points="286,-74.5 151.5,-74.5 151.5,-55.25 286,-55.25 286,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="218.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/curvilinear.h</text>
</a>
</g>
</g>
@@ -41,8 +77,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.31,-110.09C204.48,-101.22 152.66,-87.62 115.41,-77.85"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="116.38,-74.49 105.82,-75.34 114.6,-81.26 116.38,-74.49"/>
<path fill="none" stroke="#63b8ff" d="M311.75,-110.09C294.29,-101.79 268.15,-89.36 248.03,-79.79"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="249.74,-76.74 239.21,-75.6 246.74,-83.06 249.74,-76.74"/>
</a>
</g>
</g>
@@ -50,8 +86,8 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="mapping_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="282.62,-74.5 154.88,-74.5 154.88,-55.25 282.62,-55.25 282.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="218.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/mapping.h</text>
<polygon fill="white" stroke="#666666" points="133.62,-74.5 5.88,-74.5 5.88,-55.25 133.62,-55.25 133.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="69.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/mapping.h</text>
</a>
</g>
</g>
@@ -59,8 +95,8 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M263.83,-110.33C256.3,-102.9 245.28,-92.04 236.02,-82.91"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="238.52,-80.45 228.94,-75.92 233.6,-85.44 238.52,-80.45"/>
<path fill="none" stroke="#63b8ff" d="M286.18,-110.03C241.7,-100.96 173.24,-86.99 125.26,-77.2"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="126.12,-73.8 115.62,-75.23 124.72,-80.66 126.12,-73.8"/>
</a>
</g>
</g>
@@ -68,8 +104,8 @@
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="354.5,-74.5 301,-74.5 301,-55.25 354.5,-55.25 354.5,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="327.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="357.5,-74.5 304,-74.5 304,-55.25 357.5,-55.25 357.5,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="330.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -77,8 +113,8 @@
<g id="edge9_Node000001_Node000007" class="edge">
<title>Node1&#45;&gt;Node7</title>
<g id="a_edge9_Node000001_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M281.83,-110.33C289.59,-102.82 300.96,-91.81 310.45,-82.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="312.63,-85.38 317.38,-75.91 307.76,-80.35 312.63,-85.38"/>
<path fill="none" stroke="#63b8ff" d="M330.75,-110.33C330.75,-103.82 330.75,-94.67 330.75,-86.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="334.25,-86.37 330.75,-76.37 327.25,-86.37 334.25,-86.37"/>
</a>
</g>
</g>
@@ -86,8 +122,8 @@
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="423.38,-74.5 372.12,-74.5 372.12,-55.25 423.38,-55.25 423.38,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="397.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
<polygon fill="#e0e0e0" stroke="#999999" points="426.38,-74.5 375.12,-74.5 375.12,-55.25 426.38,-55.25 426.38,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="400.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
</a>
</g>
</g>
@@ -95,8 +131,26 @@
<g id="edge10_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge10_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M293.95,-110.09C313.71,-101.68 343.42,-89.02 366,-79.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="367.22,-82.68 375.05,-75.55 364.48,-76.24 367.22,-82.68"/>
<path fill="none" stroke="#63b8ff" d="M342.62,-110.09C352.84,-102.32 367.82,-90.92 380.01,-81.65"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="382.01,-84.53 387.85,-75.69 377.77,-78.96 382.01,-84.53"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="506.62,-74.5 444.88,-74.5 444.88,-55.25 506.62,-55.25 506.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="475.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sys/proc.h</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge11_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge11_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M355.35,-110.09C378.68,-101.52 413.99,-88.56 440.35,-78.88"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="441.43,-82.21 449.61,-75.47 439.02,-75.64 441.43,-82.21"/>
</a>
</g>
</g>
@@ -113,8 +167,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node2&#45;&gt;Node3</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M63.14,-55.08C57.79,-47.96 50.07,-37.68 43.4,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.21,-26.71 37.41,-20.82 40.62,-30.92 46.21,-26.71"/>
<path fill="none" stroke="#63b8ff" d="M186.69,-54.84C154.66,-45.82 105.32,-31.92 70.53,-22.11"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="71.81,-18.84 61.24,-19.5 69.91,-25.58 71.81,-18.84"/>
</a>
</g>
</g>
@@ -131,8 +185,8 @@
<g id="edge3_Node000002_Node000004" class="edge">
<title>Node2&#45;&gt;Node4</title>
<g id="a_edge3_Node000002_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M80.1,-54.84C88.83,-47.22 101.54,-36.12 112.05,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="114.18,-29.73 119.41,-20.52 109.58,-24.46 114.18,-29.73"/>
<path fill="none" stroke="#63b8ff" d="M203.82,-54.84C190.55,-46.81 170.88,-34.91 155.3,-25.48"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.41,-22.67 147.05,-20.49 153.79,-28.66 157.41,-22.67"/>
</a>
</g>
</g>
@@ -149,8 +203,8 @@
<g id="edge4_Node000002_Node000005" class="edge">
<title>Node2&#45;&gt;Node5</title>
<g id="a_edge4_Node000002_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M101.81,-54.84C133.17,-46.01 181.14,-32.49 215.79,-22.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="216.4,-26.19 225.07,-20.11 214.5,-19.46 216.4,-26.19"/>
<path fill="none" stroke="#63b8ff" d="M225.36,-55.08C230.71,-47.96 238.43,-37.68 245.1,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="247.88,-30.92 251.09,-20.82 242.29,-26.71 247.88,-30.92"/>
</a>
</g>
</g>
@@ -158,8 +212,8 @@
<g id="edge6_Node000006_Node000003" class="edge">
<title>Node6&#45;&gt;Node3</title>
<g id="a_edge6_Node000006_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M186.69,-54.84C154.66,-45.82 105.32,-31.92 70.53,-22.11"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="71.81,-18.84 61.24,-19.5 69.91,-25.58 71.81,-18.84"/>
<path fill="none" stroke="#63b8ff" d="M63.14,-55.08C57.79,-47.96 50.07,-37.68 43.4,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.21,-26.71 37.41,-20.82 40.62,-30.92 46.21,-26.71"/>
</a>
</g>
</g>
@@ -167,8 +221,8 @@
<g id="edge7_Node000006_Node000004" class="edge">
<title>Node6&#45;&gt;Node4</title>
<g id="a_edge7_Node000006_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M203.82,-54.84C190.55,-46.81 170.88,-34.91 155.3,-25.48"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.41,-22.67 147.05,-20.49 153.79,-28.66 157.41,-22.67"/>
<path fill="none" stroke="#63b8ff" d="M80.1,-54.84C88.83,-47.22 101.54,-36.12 112.05,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="114.18,-29.73 119.41,-20.52 109.58,-24.46 114.18,-29.73"/>
</a>
</g>
</g>
@@ -176,13 +230,34 @@
<g id="edge8_Node000006_Node000005" class="edge">
<title>Node6&#45;&gt;Node5</title>
<g id="a_edge8_Node000006_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M225.36,-55.08C230.71,-47.96 238.43,-37.68 245.1,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="247.88,-30.92 251.09,-20.82 242.29,-26.71 247.88,-30.92"/>
<path fill="none" stroke="#63b8ff" d="M101.81,-54.84C133.17,-46.01 181.14,-32.49 215.79,-22.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="216.4,-26.19 225.07,-20.11 214.5,-19.46 216.4,-26.19"/>
</a>
</g>
</g>
</g>
</svg>
<g id="navigator" transform="translate(0 0)" fill="#404254">
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
<use id="arrowup" xlink:href="#arrowUp" x="0" y="0" onmousedown="handlePan(0,-1)"/>
<use id="arrowright" xlink:href="#arrowRight" x="0" y="0" onmousedown="handlePan(1,0)"/>
<use id="arrowdown" xlink:href="#arrowDown" x="0" y="0" onmousedown="handlePan(0,1)"/>
<use id="arrowleft" xlink:href="#arrowLeft" x="0" y="0" onmousedown="handlePan(-1,0)"/>
</g>
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
<g id="arrow_out" transform="scale(0.3 0.3)">
<a xlink:href="curvilinear_8cpp__incl_org.svg" target="_base">
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
<path id="arrow"
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
style="fill:#404040;"/>
</a>
</g>
</svg>
<style type='text/css'>

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 13.0.1 (20250615.1724)
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
-->
<!-- Title: src/lib/topology/curvilinear.cpp Pages: 1 -->
<svg width="431pt" height="138pt"
viewBox="0.00 0.00 431.00 138.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="515pt" height="138pt"
viewBox="0.00 0.00 515.00 138.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 133.75)">
<title>src/lib/topology/curvilinear.cpp</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="#666666" points="346.38,-129.75 199.12,-129.75 199.12,-110.5 346.38,-110.5 346.38,-129.75"/>
<text xml:space="preserve" text-anchor="middle" x="272.75" y="-116.25" font-family="Helvetica,sans-Serif" font-size="10.00">src/lib/topology/curvilinear.cpp</text>
<polygon fill="#999999" stroke="#666666" points="404.38,-129.75 257.12,-129.75 257.12,-110.5 404.38,-110.5 404.38,-129.75"/>
<text xml:space="preserve" text-anchor="middle" x="330.75" y="-116.25" font-family="Helvetica,sans-Serif" font-size="10.00">src/lib/topology/curvilinear.cpp</text>
</a>
</g>
</g>
@@ -21,8 +21,8 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="curvilinear_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="137,-74.5 2.5,-74.5 2.5,-55.25 137,-55.25 137,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="69.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/curvilinear.h</text>
<polygon fill="white" stroke="#666666" points="286,-74.5 151.5,-74.5 151.5,-55.25 286,-55.25 286,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="218.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/curvilinear.h</text>
</a>
</g>
</g>
@@ -30,8 +30,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M238.31,-110.09C204.48,-101.22 152.66,-87.62 115.41,-77.85"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="116.38,-74.49 105.82,-75.34 114.6,-81.26 116.38,-74.49"/>
<path fill="none" stroke="#63b8ff" d="M311.75,-110.09C294.29,-101.79 268.15,-89.36 248.03,-79.79"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="249.74,-76.74 239.21,-75.6 246.74,-83.06 249.74,-76.74"/>
</a>
</g>
</g>
@@ -39,8 +39,8 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="mapping_8h.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="#666666" points="282.62,-74.5 154.88,-74.5 154.88,-55.25 282.62,-55.25 282.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="218.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/mapping.h</text>
<polygon fill="white" stroke="#666666" points="133.62,-74.5 5.88,-74.5 5.88,-55.25 133.62,-55.25 133.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="69.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">stroid/topology/mapping.h</text>
</a>
</g>
</g>
@@ -48,8 +48,8 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M263.83,-110.33C256.3,-102.9 245.28,-92.04 236.02,-82.91"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="238.52,-80.45 228.94,-75.92 233.6,-85.44 238.52,-80.45"/>
<path fill="none" stroke="#63b8ff" d="M286.18,-110.03C241.7,-100.96 173.24,-86.99 125.26,-77.2"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="126.12,-73.8 115.62,-75.23 124.72,-80.66 126.12,-73.8"/>
</a>
</g>
</g>
@@ -57,8 +57,8 @@
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="354.5,-74.5 301,-74.5 301,-55.25 354.5,-55.25 354.5,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="327.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
<polygon fill="#e0e0e0" stroke="#999999" points="357.5,-74.5 304,-74.5 304,-55.25 357.5,-55.25 357.5,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="330.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">iostream</text>
</a>
</g>
</g>
@@ -66,8 +66,8 @@
<g id="edge9_Node000001_Node000007" class="edge">
<title>Node1&#45;&gt;Node7</title>
<g id="a_edge9_Node000001_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M281.83,-110.33C289.59,-102.82 300.96,-91.81 310.45,-82.63"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="312.63,-85.38 317.38,-75.91 307.76,-80.35 312.63,-85.38"/>
<path fill="none" stroke="#63b8ff" d="M330.75,-110.33C330.75,-103.82 330.75,-94.67 330.75,-86.37"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="334.25,-86.37 330.75,-76.37 327.25,-86.37 334.25,-86.37"/>
</a>
</g>
</g>
@@ -75,8 +75,8 @@
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="423.38,-74.5 372.12,-74.5 372.12,-55.25 423.38,-55.25 423.38,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="397.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
<polygon fill="#e0e0e0" stroke="#999999" points="426.38,-74.5 375.12,-74.5 375.12,-55.25 426.38,-55.25 426.38,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="400.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">memory</text>
</a>
</g>
</g>
@@ -84,8 +84,26 @@
<g id="edge10_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge10_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M293.95,-110.09C313.71,-101.68 343.42,-89.02 366,-79.4"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="367.22,-82.68 375.05,-75.55 364.48,-76.24 367.22,-82.68"/>
<path fill="none" stroke="#63b8ff" d="M342.62,-110.09C352.84,-102.32 367.82,-90.92 380.01,-81.65"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="382.01,-84.53 387.85,-75.69 377.77,-78.96 382.01,-84.53"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:title=" ">
<polygon fill="#e0e0e0" stroke="#999999" points="506.62,-74.5 444.88,-74.5 444.88,-55.25 506.62,-55.25 506.62,-74.5"/>
<text xml:space="preserve" text-anchor="middle" x="475.75" y="-61" font-family="Helvetica,sans-Serif" font-size="10.00">sys/proc.h</text>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge11_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge11_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M355.35,-110.09C378.68,-101.52 413.99,-88.56 440.35,-78.88"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="441.43,-82.21 449.61,-75.47 439.02,-75.64 441.43,-82.21"/>
</a>
</g>
</g>
@@ -102,8 +120,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node2&#45;&gt;Node3</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M63.14,-55.08C57.79,-47.96 50.07,-37.68 43.4,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.21,-26.71 37.41,-20.82 40.62,-30.92 46.21,-26.71"/>
<path fill="none" stroke="#63b8ff" d="M186.69,-54.84C154.66,-45.82 105.32,-31.92 70.53,-22.11"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="71.81,-18.84 61.24,-19.5 69.91,-25.58 71.81,-18.84"/>
</a>
</g>
</g>
@@ -120,8 +138,8 @@
<g id="edge3_Node000002_Node000004" class="edge">
<title>Node2&#45;&gt;Node4</title>
<g id="a_edge3_Node000002_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M80.1,-54.84C88.83,-47.22 101.54,-36.12 112.05,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="114.18,-29.73 119.41,-20.52 109.58,-24.46 114.18,-29.73"/>
<path fill="none" stroke="#63b8ff" d="M203.82,-54.84C190.55,-46.81 170.88,-34.91 155.3,-25.48"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.41,-22.67 147.05,-20.49 153.79,-28.66 157.41,-22.67"/>
</a>
</g>
</g>
@@ -138,8 +156,8 @@
<g id="edge4_Node000002_Node000005" class="edge">
<title>Node2&#45;&gt;Node5</title>
<g id="a_edge4_Node000002_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M101.81,-54.84C133.17,-46.01 181.14,-32.49 215.79,-22.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="216.4,-26.19 225.07,-20.11 214.5,-19.46 216.4,-26.19"/>
<path fill="none" stroke="#63b8ff" d="M225.36,-55.08C230.71,-47.96 238.43,-37.68 245.1,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="247.88,-30.92 251.09,-20.82 242.29,-26.71 247.88,-30.92"/>
</a>
</g>
</g>
@@ -147,8 +165,8 @@
<g id="edge6_Node000006_Node000003" class="edge">
<title>Node6&#45;&gt;Node3</title>
<g id="a_edge6_Node000006_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M186.69,-54.84C154.66,-45.82 105.32,-31.92 70.53,-22.11"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="71.81,-18.84 61.24,-19.5 69.91,-25.58 71.81,-18.84"/>
<path fill="none" stroke="#63b8ff" d="M63.14,-55.08C57.79,-47.96 50.07,-37.68 43.4,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="46.21,-26.71 37.41,-20.82 40.62,-30.92 46.21,-26.71"/>
</a>
</g>
</g>
@@ -156,8 +174,8 @@
<g id="edge7_Node000006_Node000004" class="edge">
<title>Node6&#45;&gt;Node4</title>
<g id="a_edge7_Node000006_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M203.82,-54.84C190.55,-46.81 170.88,-34.91 155.3,-25.48"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="157.41,-22.67 147.05,-20.49 153.79,-28.66 157.41,-22.67"/>
<path fill="none" stroke="#63b8ff" d="M80.1,-54.84C88.83,-47.22 101.54,-36.12 112.05,-26.95"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="114.18,-29.73 119.41,-20.52 109.58,-24.46 114.18,-29.73"/>
</a>
</g>
</g>
@@ -165,8 +183,8 @@
<g id="edge8_Node000006_Node000005" class="edge">
<title>Node6&#45;&gt;Node5</title>
<g id="a_edge8_Node000006_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M225.36,-55.08C230.71,-47.96 238.43,-37.68 245.1,-28.8"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="247.88,-30.92 251.09,-20.82 242.29,-26.71 247.88,-30.92"/>
<path fill="none" stroke="#63b8ff" d="M101.81,-54.84C133.17,-46.01 181.14,-32.49 215.79,-22.73"/>
<polygon fill="#63b8ff" stroke="#63b8ff" points="216.4,-26.19 225.07,-20.11 214.5,-19.46 216.4,-26.19"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -83,12 +83,17 @@
<a href="structstroid_1_1config_1_1_mesh_config-members.html"/>
<a href="structstroid_1_1config_1_1_mesh_config.html"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d"/>
<a href="structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584"/>
<a href="topology_8cpp.html"/>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -102,15 +102,20 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });
<div class="contents">
<div class="textblock">Here is a list of all class members with links to the classes they belong to:</div><ul>
<li>core_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b">stroid::config::MeshConfig</a></li>
<li>core_steepness&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d">stroid::config::MeshConfig</a></li>
<li>envelope_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8">stroid::config::MeshConfig</a></li>
<li>flattening&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584">stroid::config::MeshConfig</a></li>
<li>include_external_domain&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368">stroid::config::MeshConfig</a></li>
<li>inf_bdr_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0">stroid::config::MeshConfig</a></li>
<li>order&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd">stroid::config::MeshConfig</a></li>
<li>r_core&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7">stroid::config::MeshConfig</a></li>
<li>r_infinity&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb">stroid::config::MeshConfig</a></li>
<li>r_instability&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877">stroid::config::MeshConfig</a></li>
<li>r_star&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05">stroid::config::MeshConfig</a></li>
<li>refinement_levels&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981">stroid::config::MeshConfig</a></li>
<li>surface_bdr_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda">stroid::config::MeshConfig</a></li>
<li>vacuum_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad">stroid::config::MeshConfig</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -102,15 +102,20 @@ $(function(){initNavTree('functions_vars.html',''); initResizable(true); });
<div class="contents">
<div class="textblock">Here is a list of all variables with links to the classes they belong to:</div><ul>
<li>core_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b">stroid::config::MeshConfig</a></li>
<li>core_steepness&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d">stroid::config::MeshConfig</a></li>
<li>envelope_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8">stroid::config::MeshConfig</a></li>
<li>flattening&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584">stroid::config::MeshConfig</a></li>
<li>include_external_domain&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368">stroid::config::MeshConfig</a></li>
<li>inf_bdr_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0">stroid::config::MeshConfig</a></li>
<li>order&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd">stroid::config::MeshConfig</a></li>
<li>r_core&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7">stroid::config::MeshConfig</a></li>
<li>r_infinity&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb">stroid::config::MeshConfig</a></li>
<li>r_instability&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877">stroid::config::MeshConfig</a></li>
<li>r_star&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05">stroid::config::MeshConfig</a></li>
<li>refinement_levels&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981">stroid::config::MeshConfig</a></li>
<li>surface_bdr_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda">stroid::config::MeshConfig</a></li>
<li>vacuum_id&#160;:&#160;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad">stroid::config::MeshConfig</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -122,27 +122,48 @@ Building</h2>
<div class="line">meson compile -C build</div>
<div class="line">meson test -C build</div>
<div class="line">meson install -C build</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md4"></a>
</div><!-- fragment --><h3><a class="anchor" id="autotoc_md4"></a>
Uninstalling</h3>
<p>To uninstall stroid, if you built it using meson and the default ninja backend, you can use the following command </p><div class="fragment"><div class="line">sudo ninja uninstall -C build</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md5"></a>
Running</h2>
<p>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 <code>stroid generate</code> command should be available in your terminal.</p>
<div class="fragment"><div class="line">stroid generate --help</div>
</div><!-- fragment --><p>The main way to interface with this is through the subcommands (currently only <code>generate</code> and <code>info</code> are available):</p>
<div class="fragment"><div class="line">stroid generate -c &lt;path/to/config/file.toml&gt;</div>
</div><!-- fragment --><div class="fragment"><div class="line">stroid info -d</div>
</div><!-- fragment --><p>to save the default configuration to a file named <code>default.toml</code></p>
<h2><a class="anchor" id="autotoc_md5"></a>
</div><!-- fragment --><p>One can change the output format by specificing one of the avalible output formats <b>after</b> generation options</p>
<div class="fragment"><div class="line">stroid generate -c &lt;path/to/config/file.toml&gt; -o &quot;output.vtu&quot; vtu --ref 1</div>
</div><!-- fragment --><p>each output format has its own options, which can be viewed by running</p>
<div class="fragment"><div class="line">stroid generate [fmt] --help</div>
</div><!-- fragment --><p>where <code>[fmt]</code> is replaced with the desired output format (e.g. vtu, netgen, mfem, etc.). Avalible output formats are:</p>
<ul>
<li>vtu: VTK Unstructured Grid format</li>
<li>mfem: MFEM mesh format</li>
<li>netgen: Netgen mesh format</li>
<li>vtk: Legacy VTK format</li>
<li>paraview: ParaView Data collection format</li>
<li>info: Outputs mesh information to the terminal</li>
</ul>
<p>Further, mesh generation options are loaded from a toml file, a default version of this file can be saved by running </p><div class="fragment"><div class="line">stroid info -d</div>
</div><!-- fragment --><p> which will save a default config file to <code>default.toml</code></p>
<h2><a class="anchor" id="autotoc_md6"></a>
Configuration File</h2>
<p>Stroid uses a TOML configuration file to specify the parameters for mesh generation. An example configuration file is found below</p>
<div class="fragment"><div class="line">[main]</div>
<div class="line">core_steepness = 1.0</div>
<div class="line">flattening = 0.0</div>
<div class="line">include_external_domain = false</div>
<div class="line">refinement_levels = 2</div>
<div class="line">order = 3</div>
<div class="line">include_external_domain = true</div>
<div class="line">r_core = 1.5</div>
<div class="line">r_star = 5.0</div>
<div class="line">flattening = 0.08</div>
<div class="line">r_infinity = 6.0</div>
<div class="line">r_instability = 1e-14</div>
<div class="line">r_star = 5.0</div>
<div class="line">refinement_levels = 4</div>
<div class="line">core_steepness = 1.0</div>
<div class="line">surface_bdr_id = 1</div>
<div class="line">inf_bdr_id = 2</div>
<div class="line">core_id = 1</div>
<div class="line">envelope_id = 2</div>
<div class="line">vacuum_id = 3</div>
</div><!-- fragment --><table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Parameter </th><th class="markdownTableHeadNone">Description </th><th class="markdownTableHeadNone">Default </th></tr>
@@ -151,7 +172,7 @@ Configuration File</h2>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">order </td><td class="markdownTableBodyNone">The polynomial order of the finite elements in the mesh </td><td class="markdownTableBodyNone">3 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">include_external_domain </td><td class="markdownTableBodyNone">Whether to include an external domain extending to r_infinity </td><td class="markdownTableBodyNone">false </td></tr>
<td class="markdownTableBodyNone">include_external_domain </td><td class="markdownTableBodyNone">Whether to include an external domain extending to r_infinity </td><td class="markdownTableBodyNone">true </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">r_core </td><td class="markdownTableBodyNone">The radius of the core region of the star </td><td class="markdownTableBodyNone">1.5 </td></tr>
<tr class="markdownTableRowOdd">
@@ -163,10 +184,20 @@ Configuration File</h2>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">r_instability </td><td class="markdownTableBodyNone">The radius at which no transformations are applied to the initial topology (to avoid singularities) </td><td class="markdownTableBodyNone">1e-14 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">core_steepness </td><td class="markdownTableBodyNone">The steepness of the transition between the core and envelope regions of the star </td><td class="markdownTableBodyNone">1.0 </td></tr>
<td class="markdownTableBodyNone">core_steepness </td><td class="markdownTableBodyNone">The steepness of the transition between the core and envelope regions of the star </td><td class="markdownTableBodyNone">1.0 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">surface_bdr_id </td><td class="markdownTableBodyNone">The boundary ID to assign to the surface of the star </td><td class="markdownTableBodyNone">1 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">inf_bdr_id </td><td class="markdownTableBodyNone">The boundary ID to assign to the outer boundary of the external domain (if included) </td><td class="markdownTableBodyNone">2 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">core_id </td><td class="markdownTableBodyNone">The material ID to assign to the core region of the star </td><td class="markdownTableBodyNone">1 </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">envelope_id </td><td class="markdownTableBodyNone">The material ID to assign to the envelope region of the star </td><td class="markdownTableBodyNone">2 </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">vacuum_id </td><td class="markdownTableBodyNone">The material ID to assign to the vacuum region of the star (if included) </td><td class="markdownTableBodyNone">3 </td></tr>
</table>
<p>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.</p>
<h2><a class="anchor" id="autotoc_md6"></a>
<h2><a class="anchor" id="autotoc_md7"></a>
C++ Interface</h2>
<p>Stroid can be used as a library in C++ projects. After installation, include the stroid header and link against the stroid library.</p>
<p>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): </p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;memory&gt;</span></div>
@@ -195,15 +226,12 @@ C++ Interface</h2>
<div class="ttc" id="amesh_8h_html"><div class="ttname"><a href="mesh_8h.html">mesh.h</a></div></div>
<div class="ttc" id="anamespacestroid_1_1_i_o_html_a496f5c16eaffda5922a0b96c1f525dab"><div class="ttname"><a href="namespacestroid_1_1_i_o.html#a496f5c16eaffda5922a0b96c1f525dab">stroid::IO::ViewMesh</a></div><div class="ttdeci">void ViewMesh(mfem::Mesh &amp;mesh, const std::string &amp;title, VISUALIZATION_MODE mode, const std::string &amp;vishost, int visport)</div><div class="ttdoc">Stream a mesh to a running GLVis server for interactive viewing.</div><div class="ttdef"><b>Definition</b> mesh.cpp:25</div></div>
<div class="ttc" id="anamespacestroid_1_1_i_o_html_ad4048304d8a0c7075d2b2a6e465d0b6eaee96e14c2b71bd59252006289ba464cf"><div class="ttname"><a href="namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eaee96e14c2b71bd59252006289ba464cf">stroid::IO::VISUALIZATION_MODE::BOUNDARY_ELEMENT_ID</a></div><div class="ttdeci">@ BOUNDARY_ELEMENT_ID</div><div class="ttdoc">Color boundary-adjacent elements by boundary attribute/ID.</div><div class="ttdef"><b>Definition</b> mesh.h:15</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a5907aa2e639cda703d48d177abc37caf"><div class="ttname"><a href="namespacestroid_1_1topology.html#a5907aa2e639cda703d48d177abc37caf">stroid::topology::PromoteToHighOrder</a></div><div class="ttdeci">void PromoteToHighOrder(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Promote a mesh to high-order by attaching an H1 nodal finite element space.</div><div class="ttdef"><b>Definition</b> curvilinear.cpp:8</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a62774bcba7ea1a485892dcd4bed6425b"><div class="ttname"><a href="namespacestroid_1_1topology.html#a62774bcba7ea1a485892dcd4bed6425b">stroid::topology::Finalize</a></div><div class="ttdeci">void Finalize(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Finalize topology, validate orientation, and apply uniform refinement.</div><div class="ttdef"><b>Definition</b> topology.cpp:59</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a836ed13e5bac63e7952c3ce4e5532e78"><div class="ttname"><a href="namespacestroid_1_1topology.html#a836ed13e5bac63e7952c3ce4e5532e78">stroid::topology::ProjectMesh</a></div><div class="ttdeci">void ProjectMesh(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Project high-order mesh nodes using the configured curvilinear mapping.</div><div class="ttdef"><b>Definition</b> curvilinear.cpp:14</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a5907aa2e639cda703d48d177abc37caf"><div class="ttname"><a href="namespacestroid_1_1topology.html#a5907aa2e639cda703d48d177abc37caf">stroid::topology::PromoteToHighOrder</a></div><div class="ttdeci">void PromoteToHighOrder(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Promote a mesh to high-order by attaching an H1 nodal finite element space.</div><div class="ttdef"><b>Definition</b> curvilinear.cpp:9</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a62774bcba7ea1a485892dcd4bed6425b"><div class="ttname"><a href="namespacestroid_1_1topology.html#a62774bcba7ea1a485892dcd4bed6425b">stroid::topology::Finalize</a></div><div class="ttdeci">void Finalize(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Finalize topology, validate orientation, and apply uniform refinement.</div><div class="ttdef"><b>Definition</b> topology.cpp:90</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_a836ed13e5bac63e7952c3ce4e5532e78"><div class="ttname"><a href="namespacestroid_1_1topology.html#a836ed13e5bac63e7952c3ce4e5532e78">stroid::topology::ProjectMesh</a></div><div class="ttdeci">void ProjectMesh(mfem::Mesh &amp;mesh, const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Project high-order mesh nodes using the configured curvilinear mapping.</div><div class="ttdef"><b>Definition</b> curvilinear.cpp:15</div></div>
<div class="ttc" id="anamespacestroid_1_1topology_html_abc0d8a1fb8e9c5ac0e259e4c93db7892"><div class="ttname"><a href="namespacestroid_1_1topology.html#abc0d8a1fb8e9c5ac0e259e4c93db7892">stroid::topology::BuildSkeleton</a></div><div class="ttdeci">std::unique_ptr&lt; mfem::Mesh &gt; BuildSkeleton(const fourdst::config::Config&lt; config::MeshConfig &gt; &amp;config)</div><div class="ttdoc">Build the initial multi-block mesh topology for the star model.</div><div class="ttdef"><b>Definition</b> topology.cpp:10</div></div>
<div class="ttc" id="atopology_8h_html"><div class="ttname"><a href="topology_8h.html">topology.h</a></div></div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md7"></a>
Example Meshes</h1>
<p>An example mesh with the default configuration parameters is shown below (coloration indicates attribute IDs of different regions): <img src="assets/imgs/ExampleMesh.png" alt="Example Mesh" class="inline"/></p>
<h1><a class="anchor" id="autotoc_md8"></a>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md8"></a>
Funding</h1>
<p>Stroid is developed as part of the 4D-STAR project.</p>
<p>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. </p>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -131,9 +131,6 @@ Functions</h2></td></tr>
<tr class="memitem:a7fbf58c40c03bc751d53f4a3273744fc" id="r_a7fbf58c40c03bc751d53f4a3273744fc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacestroid_1_1topology.html#a7fbf58c40c03bc751d53f4a3273744fc">stroid::topology::ApplySpheroidal</a> (mfem::Vector &amp;pos, const fourdst::config::Config&lt; <a class="el" href="structstroid_1_1config_1_1_mesh_config.html">config::MeshConfig</a> &gt; &amp;config)</td></tr>
<tr class="memdesc:a7fbf58c40c03bc751d53f4a3273744fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply spheroidal flattening along the Z axis. <br /></td></tr>
<tr class="separator:a7fbf58c40c03bc751d53f4a3273744fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59c54a10f726d323f8506b4a2edd7467" id="r_a59c54a10f726d323f8506b4a2edd7467"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacestroid_1_1topology.html#a59c54a10f726d323f8506b4a2edd7467">stroid::topology::ApplyKelvin</a> (mfem::Vector &amp;pos, const fourdst::config::Config&lt; <a class="el" href="structstroid_1_1config_1_1_mesh_config.html">config::MeshConfig</a> &gt; &amp;config)</td></tr>
<tr class="memdesc:a59c54a10f726d323f8506b4a2edd7467"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply Kelvin transform outside the stellar radius. <br /></td></tr>
<tr class="separator:a59c54a10f726d323f8506b4a2edd7467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a394e33bdfafdaccd6edfaae0642d3456" id="r_a394e33bdfafdaccd6edfaae0642d3456"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacestroid_1_1topology.html#a394e33bdfafdaccd6edfaae0642d3456">stroid::topology::TransformPoint</a> (mfem::Vector &amp;pos, const fourdst::config::Config&lt; <a class="el" href="structstroid_1_1config_1_1_mesh_config.html">config::MeshConfig</a> &gt; &amp;config, int attribute_id)</td></tr>
<tr class="memdesc:a394e33bdfafdaccd6edfaae0642d3456"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map a point from the initial block topology to the curvilinear domain. <br /></td></tr>
<tr class="separator:a394e33bdfafdaccd6edfaae0642d3456"><td class="memSeparator" colspan="2">&#160;</td></tr>

View File

@@ -1,7 +1,6 @@
var mapping_8cpp =
[
[ "stroid::topology::ApplyEquiangular", "namespacestroid_1_1topology.html#a03f0b29ccf7d427a175de9ff75824b7c", null ],
[ "stroid::topology::ApplyKelvin", "namespacestroid_1_1topology.html#a59c54a10f726d323f8506b4a2edd7467", null ],
[ "stroid::topology::ApplySpheroidal", "namespacestroid_1_1topology.html#a7fbf58c40c03bc751d53f4a3273744fc", null ],
[ "stroid::topology::TransformPoint", "namespacestroid_1_1topology.html#a394e33bdfafdaccd6edfaae0642d3456", null ]
];

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -27,12 +27,13 @@ var NAVTREE =
[ "stroid", "index.html", [
[ "A multi-block mesh generation tool for stellar modeling", "index.html#autotoc_md1", null ],
[ "Building and Installing", "index.html#autotoc_md2", [
[ "Building", "index.html#autotoc_md3", null ],
[ "Running", "index.html#autotoc_md4", null ],
[ "Configuration File", "index.html#autotoc_md5", null ],
[ "C++ Interface", "index.html#autotoc_md6", null ]
[ "Building", "index.html#autotoc_md3", [
[ "Uninstalling", "index.html#autotoc_md4", null ]
] ],
[ "Running", "index.html#autotoc_md5", null ],
[ "Configuration File", "index.html#autotoc_md6", null ],
[ "C++ Interface", "index.html#autotoc_md7", null ]
] ],
[ "Example Meshes", "index.html#autotoc_md7", null ],
[ "Funding", "index.html#autotoc_md8", null ],
[ "Namespaces", "namespaces.html", [
[ "Namespace List", "namespaces.html", "namespaces_dup" ],

View File

@@ -1,90 +1,100 @@
var NAVTREEINDEX0 =
{
"_logo_8png.html":[6,0,0,0,0],
"annotated.html":[5,0],
"classes.html":[5,1],
"config_8h.html":[6,0,1,0,0,0,0],
"curvilinear_8cpp.html":[6,0,1,1,1,0],
"curvilinear_8h.html":[6,0,1,0,0,2,0],
"dir_31a6c70da1404d38d1b51e38b19548a1.html":[6,0,1,0,0,1],
"dir_3f4f28e99864f6e7d54ad0c93ce0a2a5.html":[6,0,1,0,0],
"dir_49e56c817e5e54854c35e136979f97ca.html":[6,0,0],
"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[6,0,1],
"dir_82887d4f338e92537fa9d809bec8c614.html":[6,0,1,1,0],
"dir_87d18a4dc5174905bfd7d2dc734defe6.html":[6,0,1,1,2],
"dir_936721fd6a792737eaef7358bcd49428.html":[6,0,1,1,1],
"dir_9d5018b9ddb63a582aa4c6b91bec2f8c.html":[6,0,1,0,0,3],
"dir_9da86e8abab39b749c6020360d8e4403.html":[6,0,1,0,0,2],
"dir_b0856f6b0d80ccb263b2f415c91f9e17.html":[6,0,1,0],
"dir_c34d5e8363cf0aa3fabc4f3fad3412a4.html":[6,0,0,0],
"dir_c85d3e3c5052e9ad9ce18c6863244a25.html":[6,0,1,1],
"dir_dc36fd7496f87f6989d6d6a9445d600c.html":[6,0,1,0,0,0],
"files.html":[6,0],
"functions.html":[5,2,0],
"functions_vars.html":[5,2,1],
"_logo_8png.html":[5,0,0,0,0],
"annotated.html":[4,0],
"classes.html":[4,1],
"config_8h.html":[5,0,1,0,0,0,0],
"curvilinear_8cpp.html":[5,0,1,1,1,0],
"curvilinear_8h.html":[5,0,1,0,0,2,0],
"dir_31a6c70da1404d38d1b51e38b19548a1.html":[5,0,1,0,0,1],
"dir_3f4f28e99864f6e7d54ad0c93ce0a2a5.html":[5,0,1,0,0],
"dir_49e56c817e5e54854c35e136979f97ca.html":[5,0,0],
"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[5,0,1],
"dir_82887d4f338e92537fa9d809bec8c614.html":[5,0,1,1,0],
"dir_87d18a4dc5174905bfd7d2dc734defe6.html":[5,0,1,1,2],
"dir_936721fd6a792737eaef7358bcd49428.html":[5,0,1,1,1],
"dir_9d5018b9ddb63a582aa4c6b91bec2f8c.html":[5,0,1,0,0,3],
"dir_9da86e8abab39b749c6020360d8e4403.html":[5,0,1,0,0,2],
"dir_b0856f6b0d80ccb263b2f415c91f9e17.html":[5,0,1,0],
"dir_c34d5e8363cf0aa3fabc4f3fad3412a4.html":[5,0,0,0],
"dir_c85d3e3c5052e9ad9ce18c6863244a25.html":[5,0,1,1],
"dir_dc36fd7496f87f6989d6d6a9445d600c.html":[5,0,1,0,0,0],
"files.html":[5,0],
"functions.html":[4,2,0],
"functions_vars.html":[4,2,1],
"index.html":[],
"index.html#autotoc_md1":[0],
"index.html#autotoc_md2":[1],
"index.html#autotoc_md3":[1,0],
"index.html#autotoc_md4":[1,1],
"index.html#autotoc_md5":[1,2],
"index.html#autotoc_md6":[1,3],
"index.html#autotoc_md7":[2],
"index.html#autotoc_md8":[3],
"mapping_8cpp.html":[6,0,1,1,1,1],
"mapping_8h.html":[6,0,1,0,0,2,1],
"mesh_8cpp.html":[6,0,1,1,0,0],
"mesh_8h.html":[6,0,1,0,0,1,0],
"mesh__utils_8cpp.html":[6,0,1,1,2,0],
"mesh__utils_8h.html":[6,0,1,0,0,3,0],
"namespacemembers.html":[4,1,0],
"namespacemembers_enum.html":[4,1,2],
"namespacemembers_func.html":[4,1,1],
"namespaces.html":[4,0],
"namespacestroid.html":[4,0,0],
"namespacestroid_1_1_i_o.html":[4,0,0,1],
"namespacestroid_1_1_i_o.html#a496f5c16eaffda5922a0b96c1f525dab":[4,0,0,1,3],
"namespacestroid_1_1_i_o.html#a8100e130b3a49fdee48bc3c4d4e63963":[4,0,0,1,4],
"namespacestroid_1_1_i_o.html#ab4c8bda7ab370e34376a7832fbf0951e":[4,0,0,1,2],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6e":[4,0,0,1,0],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eab50339a10e1de285ac99d4c3990b8693":[4,0,0,1,0,0],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eac31a2fe3e97d218a154c1947b43d6bbf":[4,0,0,1,0,1],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eaee96e14c2b71bd59252006289ba464cf":[4,0,0,1,0,2],
"namespacestroid_1_1_i_o.html#aeb567ddc70ff2d064c139dee87575830":[4,0,0,1,1],
"namespacestroid_1_1config.html":[4,0,0,0],
"namespacestroid_1_1topology.html":[4,0,0,2],
"namespacestroid_1_1topology.html#a03f0b29ccf7d427a175de9ff75824b7c":[4,0,0,2,0],
"namespacestroid_1_1topology.html#a394e33bdfafdaccd6edfaae0642d3456":[4,0,0,2,7],
"namespacestroid_1_1topology.html#a5907aa2e639cda703d48d177abc37caf":[4,0,0,2,6],
"namespacestroid_1_1topology.html#a59c54a10f726d323f8506b4a2edd7467":[4,0,0,2,1],
"namespacestroid_1_1topology.html#a62774bcba7ea1a485892dcd4bed6425b":[4,0,0,2,4],
"namespacestroid_1_1topology.html#a7fbf58c40c03bc751d53f4a3273744fc":[4,0,0,2,2],
"namespacestroid_1_1topology.html#a836ed13e5bac63e7952c3ce4e5532e78":[4,0,0,2,5],
"namespacestroid_1_1topology.html#abc0d8a1fb8e9c5ac0e259e4c93db7892":[4,0,0,2,3],
"namespacestroid_1_1utils.html":[4,0,0,3],
"namespacestroid_1_1utils.html#a22ab5809195bf85156607790f82b5e2d":[4,0,0,3,1],
"namespacestroid_1_1utils.html#ae047d97d7d5dc12812395909d00f5bbe":[4,0,0,3,0],
"index.html#autotoc_md4":[1,0,0],
"index.html#autotoc_md5":[1,1],
"index.html#autotoc_md6":[1,2],
"index.html#autotoc_md7":[1,3],
"index.html#autotoc_md8":[2],
"mapping_8cpp.html":[5,0,1,1,1,1],
"mapping_8h.html":[5,0,1,0,0,2,1],
"mesh_8cpp.html":[5,0,1,1,0,0],
"mesh_8h.html":[5,0,1,0,0,1,0],
"mesh__utils_8cpp.html":[5,0,1,1,2,0],
"mesh__utils_8h.html":[5,0,1,0,0,3,0],
"namespacemembers.html":[3,1,0],
"namespacemembers_enum.html":[3,1,2],
"namespacemembers_func.html":[3,1,1],
"namespaces.html":[3,0],
"namespacestroid.html":[3,0,0],
"namespacestroid_1_1_i_o.html":[3,0,0,1],
"namespacestroid_1_1_i_o.html#a496f5c16eaffda5922a0b96c1f525dab":[3,0,0,1,3],
"namespacestroid_1_1_i_o.html#a8100e130b3a49fdee48bc3c4d4e63963":[3,0,0,1,4],
"namespacestroid_1_1_i_o.html#ab4c8bda7ab370e34376a7832fbf0951e":[3,0,0,1,2],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6e":[3,0,0,1,0],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eab50339a10e1de285ac99d4c3990b8693":[3,0,0,1,0,0],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eac31a2fe3e97d218a154c1947b43d6bbf":[3,0,0,1,0,1],
"namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eaee96e14c2b71bd59252006289ba464cf":[3,0,0,1,0,2],
"namespacestroid_1_1_i_o.html#aeb567ddc70ff2d064c139dee87575830":[3,0,0,1,1],
"namespacestroid_1_1config.html":[3,0,0,0],
"namespacestroid_1_1topology.html":[3,0,0,2],
"namespacestroid_1_1topology.html#a03f0b29ccf7d427a175de9ff75824b7c":[3,0,0,2,0],
"namespacestroid_1_1topology.html#a394e33bdfafdaccd6edfaae0642d3456":[3,0,0,2,7],
"namespacestroid_1_1topology.html#a5907aa2e639cda703d48d177abc37caf":[3,0,0,2,6],
"namespacestroid_1_1topology.html#a59c54a10f726d323f8506b4a2edd7467":[3,0,0,2,1],
"namespacestroid_1_1topology.html#a62774bcba7ea1a485892dcd4bed6425b":[3,0,0,2,4],
"namespacestroid_1_1topology.html#a7fbf58c40c03bc751d53f4a3273744fc":[3,0,0,2,2],
"namespacestroid_1_1topology.html#a836ed13e5bac63e7952c3ce4e5532e78":[3,0,0,2,5],
"namespacestroid_1_1topology.html#abc0d8a1fb8e9c5ac0e259e4c93db7892":[3,0,0,2,3],
"namespacestroid_1_1utils.html":[3,0,0,3],
"namespacestroid_1_1utils.html#a22ab5809195bf85156607790f82b5e2d":[3,0,0,3,1],
"namespacestroid_1_1utils.html#ae047d97d7d5dc12812395909d00f5bbe":[3,0,0,3,0],
"pages.html":[],
"structstroid_1_1config_1_1_mesh_config.html":[3,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html":[4,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html":[5,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368":[4,0,0,0,0,2],
"structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368":[5,0,0,0,0,2],
"structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05":[4,0,0,0,0,7],
"structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05":[5,0,0,0,0,7],
"structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877":[4,0,0,0,0,6],
"structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877":[5,0,0,0,0,6],
"structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7":[4,0,0,0,0,4],
"structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7":[5,0,0,0,0,4],
"structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd":[4,0,0,0,0,3],
"structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd":[5,0,0,0,0,3],
"structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981":[4,0,0,0,0,8],
"structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981":[5,0,0,0,0,8],
"structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb":[4,0,0,0,0,5],
"structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb":[5,0,0,0,0,5],
"structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d":[4,0,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d":[5,0,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584":[4,0,0,0,0,1],
"structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584":[5,0,0,0,0,1],
"topology_8cpp.html":[6,0,1,1,1,2],
"topology_8h.html":[6,0,1,0,0,2,2]
"structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368":[3,0,0,0,0,4],
"structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368":[4,0,0,0,0,4],
"structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b":[3,0,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b":[4,0,0,0,0,0],
"structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda":[3,0,0,0,0,12],
"structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda":[4,0,0,0,0,12],
"structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad":[3,0,0,0,0,13],
"structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad":[4,0,0,0,0,13],
"structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05":[3,0,0,0,0,10],
"structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05":[4,0,0,0,0,10],
"structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877":[3,0,0,0,0,9],
"structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877":[4,0,0,0,0,9],
"structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7":[3,0,0,0,0,7],
"structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7":[4,0,0,0,0,7],
"structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0":[3,0,0,0,0,5],
"structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0":[4,0,0,0,0,5],
"structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd":[3,0,0,0,0,6],
"structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd":[4,0,0,0,0,6],
"structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981":[3,0,0,0,0,11],
"structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981":[4,0,0,0,0,11],
"structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb":[3,0,0,0,0,8],
"structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb":[4,0,0,0,0,8],
"structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8":[3,0,0,0,0,2],
"structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8":[4,0,0,0,0,2],
"structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d":[3,0,0,0,0,1],
"structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d":[4,0,0,0,0,1],
"structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584":[3,0,0,0,0,3],
"structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584":[4,0,0,0,0,3],
"topology_8cpp.html":[5,0,1,1,1,2],
"topology_8h.html":[5,0,1,0,0,2,2]
};

View File

@@ -1,9 +1,10 @@
var searchData=
[
['c_20interface_0',['C++ Interface',['../index.html#autotoc_md6',1,'']]],
['c_20interface_0',['C++ Interface',['../index.html#autotoc_md7',1,'']]],
['config_2eh_1',['config.h',['../config_8h.html',1,'']]],
['configuration_20file_2',['Configuration File',['../index.html#autotoc_md5',1,'']]],
['core_5fsteepness_3',['core_steepness',['../structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d',1,'stroid::config::MeshConfig']]],
['curvilinear_2ecpp_4',['curvilinear.cpp',['../curvilinear_8cpp.html',1,'']]],
['curvilinear_2eh_5',['curvilinear.h',['../curvilinear_8h.html',1,'']]]
['configuration_20file_2',['Configuration File',['../index.html#autotoc_md6',1,'']]],
['core_5fid_3',['core_id',['../structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b',1,'stroid::config::MeshConfig']]],
['core_5fsteepness_4',['core_steepness',['../structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d',1,'stroid::config::MeshConfig']]],
['curvilinear_2ecpp_5',['curvilinear.cpp',['../curvilinear_8cpp.html',1,'']]],
['curvilinear_2eh_6',['curvilinear.h',['../curvilinear_8h.html',1,'']]]
];

View File

@@ -1,5 +1,5 @@
var searchData=
[
['element_5fid_0',['ELEMENT_ID',['../namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6eac31a2fe3e97d218a154c1947b43d6bbf',1,'stroid::IO']]],
['example_20meshes_1',['Example Meshes',['../index.html#autotoc_md7',1,'']]]
['envelope_5fid_1',['envelope_id',['../structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,6 +1,6 @@
var searchData=
[
['file_0',['Configuration File',['../index.html#autotoc_md5',1,'']]],
['file_0',['Configuration File',['../index.html#autotoc_md6',1,'']]],
['finalize_1',['Finalize',['../namespacestroid_1_1topology.html#a62774bcba7ea1a485892dcd4bed6425b',1,'stroid::topology']]],
['flattening_2',['flattening',['../structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584',1,'stroid::config::MeshConfig']]],
['for_20stellar_20modeling_3',['A multi-block mesh generation tool for stellar modeling',['../index.html#autotoc_md1',1,'']]],

View File

@@ -1,6 +1,7 @@
var searchData=
[
['include_5fexternal_5fdomain_0',['include_external_domain',['../structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368',1,'stroid::config::MeshConfig']]],
['installing_1',['Building and Installing',['../index.html#autotoc_md2',1,'']]],
['interface_2',['C++ Interface',['../index.html#autotoc_md6',1,'']]]
['inf_5fbdr_5fid_1',['inf_bdr_id',['../structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0',1,'stroid::config::MeshConfig']]],
['installing_2',['Building and Installing',['../index.html#autotoc_md2',1,'']]],
['interface_3',['C++ Interface',['../index.html#autotoc_md7',1,'']]]
];

View File

@@ -11,7 +11,6 @@ var searchData=
['mesh_5futils_2ecpp_8',['mesh_utils.cpp',['../mesh__utils_8cpp.html',1,'']]],
['mesh_5futils_2eh_9',['mesh_utils.h',['../mesh__utils_8h.html',1,'']]],
['meshconfig_10',['MeshConfig',['../structstroid_1_1config_1_1_mesh_config.html',1,'stroid::config']]],
['meshes_11',['Example Meshes',['../index.html#autotoc_md7',1,'']]],
['modeling_12',['A multi-block mesh generation tool for stellar modeling',['../index.html#autotoc_md1',1,'']]],
['multi_20block_20mesh_20generation_20tool_20for_20stellar_20modeling_13',['A multi-block mesh generation tool for stellar modeling',['../index.html#autotoc_md1',1,'']]]
['modeling_11',['A multi-block mesh generation tool for stellar modeling',['../index.html#autotoc_md1',1,'']]],
['multi_20block_20mesh_20generation_20tool_20for_20stellar_20modeling_12',['A multi-block mesh generation tool for stellar modeling',['../index.html#autotoc_md1',1,'']]]
];

View File

@@ -5,5 +5,5 @@ var searchData=
['r_5finstability_2',['r_instability',['../structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877',1,'stroid::config::MeshConfig']]],
['r_5fstar_3',['r_star',['../structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05',1,'stroid::config::MeshConfig']]],
['refinement_5flevels_4',['refinement_levels',['../structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981',1,'stroid::config::MeshConfig']]],
['running_5',['Running',['../index.html#autotoc_md4',1,'']]]
['running_5',['Running',['../index.html#autotoc_md5',1,'']]]
];

View File

@@ -8,5 +8,6 @@ var searchData=
['stroid_3a_3aconfig_5',['config',['../namespacestroid_1_1config.html',1,'stroid']]],
['stroid_3a_3aio_6',['IO',['../namespacestroid_1_1_i_o.html',1,'stroid']]],
['stroid_3a_3atopology_7',['topology',['../namespacestroid_1_1topology.html',1,'stroid']]],
['stroid_3a_3autils_8',['utils',['../namespacestroid_1_1utils.html',1,'stroid']]]
['stroid_3a_3autils_8',['utils',['../namespacestroid_1_1utils.html',1,'stroid']]],
['surface_5fbdr_5fid_9',['surface_bdr_id',['../structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,6 +1,4 @@
var searchData=
[
['viewmesh_0',['ViewMesh',['../namespacestroid_1_1_i_o.html#a496f5c16eaffda5922a0b96c1f525dab',1,'stroid::IO']]],
['visualization_5fmode_1',['VISUALIZATION_MODE',['../namespacestroid_1_1_i_o.html#ad4048304d8a0c7075d2b2a6e465d0b6e',1,'stroid::IO']]],
['visualizefacevalence_2',['VisualizeFaceValence',['../namespacestroid_1_1_i_o.html#a8100e130b3a49fdee48bc3c4d4e63963',1,'stroid::IO']]]
['uninstalling_0',['Uninstalling',['../index.html#autotoc_md4',1,'']]]
];

View File

@@ -1,11 +1,11 @@
var indexSectionsWithContent =
{
0: "abcefgilmnoprstv",
0: "abcefgilmnoprstuv",
1: "m",
2: "s",
3: "clmt",
4: "abfmpstv",
5: "cfior",
5: "cefiorsv",
6: "v",
7: "ben",
8: "s"

View File

@@ -1,4 +1,5 @@
var searchData=
[
['core_5fsteepness_0',['core_steepness',['../structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d',1,'stroid::config::MeshConfig']]]
['core_5fid_0',['core_id',['../structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b',1,'stroid::config::MeshConfig']]],
['core_5fsteepness_1',['core_steepness',['../structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,4 +1,4 @@
var searchData=
[
['flattening_0',['flattening',['../structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584',1,'stroid::config::MeshConfig']]]
['envelope_5fid_0',['envelope_id',['../structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,4 +1,4 @@
var searchData=
[
['include_5fexternal_5fdomain_0',['include_external_domain',['../structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368',1,'stroid::config::MeshConfig']]]
['flattening_0',['flattening',['../structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,4 +1,5 @@
var searchData=
[
['order_0',['order',['../structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd',1,'stroid::config::MeshConfig']]]
['include_5fexternal_5fdomain_0',['include_external_domain',['../structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368',1,'stroid::config::MeshConfig']]],
['inf_5fbdr_5fid_1',['inf_bdr_id',['../structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0',1,'stroid::config::MeshConfig']]]
];

View File

@@ -1,8 +1,4 @@
var searchData=
[
['r_5fcore_0',['r_core',['../structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7',1,'stroid::config::MeshConfig']]],
['r_5finfinity_1',['r_infinity',['../structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb',1,'stroid::config::MeshConfig']]],
['r_5finstability_2',['r_instability',['../structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877',1,'stroid::config::MeshConfig']]],
['r_5fstar_3',['r_star',['../structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05',1,'stroid::config::MeshConfig']]],
['refinement_5flevels_4',['refinement_levels',['../structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981',1,'stroid::config::MeshConfig']]]
['order_0',['order',['../structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd',1,'stroid::config::MeshConfig']]]
];

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -107,15 +107,20 @@ $(function(){initNavTree('structstroid_1_1config_1_1_mesh_config.html',''); init
<p>This is the complete list of members for <a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d">core_steepness</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b">core_id</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d">core_steepness</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8">envelope_id</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584">flattening</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368">include_external_domain</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd">order</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7">r_core</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb">r_infinity</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877">r_instability</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05">r_star</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981">refinement_levels</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0">inf_bdr_id</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd">order</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7">r_core</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb">r_infinity</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877">r_instability</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05">r_star</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981">refinement_levels</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda">surface_bdr_id</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad">vacuum_id</a></td><td class="entry"><a class="el" href="structstroid_1_1config_1_1_mesh_config.html">stroid::config::MeshConfig</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>
@@ -116,37 +116,73 @@ $(function(){initNavTree('structstroid_1_1config_1_1_mesh_config.html',''); init
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a8cafcbebf64ae251517118eb152de981" id="r_a8cafcbebf64ae251517118eb152de981"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8cafcbebf64ae251517118eb152de981">refinement_levels</a> = 4</td></tr>
<tr class="memdesc:a8cafcbebf64ae251517118eb152de981"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of uniform refinement passes applied after topology creation. @toml [main].refinement_levels. <br /></td></tr>
<tr class="memdesc:a8cafcbebf64ae251517118eb152de981"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of uniform refinement passes applied after topology creation. <br /></td></tr>
<tr class="separator:a8cafcbebf64ae251517118eb152de981"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860e78f1906acb0c3aa08d55f94de3fd" id="r_a860e78f1906acb0c3aa08d55f94de3fd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a860e78f1906acb0c3aa08d55f94de3fd">order</a> = 3</td></tr>
<tr class="memdesc:a860e78f1906acb0c3aa08d55f94de3fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polynomial order for high-order elements. @toml [main].order. <br /></td></tr>
<tr class="memdesc:a860e78f1906acb0c3aa08d55f94de3fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Polynomial order for high-order elements. <br /></td></tr>
<tr class="separator:a860e78f1906acb0c3aa08d55f94de3fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a062652781f4f3ea0b7ca8764362a7368" id="r_a062652781f4f3ea0b7ca8764362a7368"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a062652781f4f3ea0b7ca8764362a7368">include_external_domain</a> = false</td></tr>
<tr class="memitem:a062652781f4f3ea0b7ca8764362a7368" id="r_a062652781f4f3ea0b7ca8764362a7368"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a062652781f4f3ea0b7ca8764362a7368">include_external_domain</a> = true</td></tr>
<tr class="memdesc:a062652781f4f3ea0b7ca8764362a7368"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to include an external domain extending to <code>r_infinity</code>. <br /></td></tr>
<tr class="separator:a062652781f4f3ea0b7ca8764362a7368"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c68a895f73dc82a38a8daac22a83ad7" id="r_a5c68a895f73dc82a38a8daac22a83ad7"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5c68a895f73dc82a38a8daac22a83ad7">r_core</a> = 1.5</td></tr>
<tr class="memdesc:a5c68a895f73dc82a38a8daac22a83ad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius of the stellar core region. @toml [main].r_core. <br /></td></tr>
<tr class="memdesc:a5c68a895f73dc82a38a8daac22a83ad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius of the stellar core region. <br /></td></tr>
<tr class="separator:a5c68a895f73dc82a38a8daac22a83ad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fe80a30990d484dcc39b6f9a0befc05" id="r_a3fe80a30990d484dcc39b6f9a0befc05"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fe80a30990d484dcc39b6f9a0befc05">r_star</a> = 5.0</td></tr>
<tr class="memdesc:a3fe80a30990d484dcc39b6f9a0befc05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius of the stellar surface. @toml [main].r_star. <br /></td></tr>
<tr class="memdesc:a3fe80a30990d484dcc39b6f9a0befc05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius of the stellar surface. <br /></td></tr>
<tr class="separator:a3fe80a30990d484dcc39b6f9a0befc05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affad4638b0ae7b710f2b2db992f6f584" id="r_affad4638b0ae7b710f2b2db992f6f584"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#affad4638b0ae7b710f2b2db992f6f584">flattening</a> = 0</td></tr>
<tr class="memdesc:affad4638b0ae7b710f2b2db992f6f584"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flattening factor for spheroidal shaping (0 = spherical, &gt;0 = oblate). @toml [main].flattening. <br /></td></tr>
<tr class="memdesc:affad4638b0ae7b710f2b2db992f6f584"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flattening factor for spheroidal shaping (0 = spherical, &gt;0 = oblate). <br /></td></tr>
<tr class="separator:affad4638b0ae7b710f2b2db992f6f584"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7546899ebbfe191ea3a8bf2403b31eb" id="r_ac7546899ebbfe191ea3a8bf2403b31eb"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac7546899ebbfe191ea3a8bf2403b31eb">r_infinity</a> = 6.0</td></tr>
<tr class="memdesc:ac7546899ebbfe191ea3a8bf2403b31eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outer radius of the external domain when enabled. @toml [main].r_infinity. <br /></td></tr>
<tr class="memdesc:ac7546899ebbfe191ea3a8bf2403b31eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outer radius of the external domain when enabled. <br /></td></tr>
<tr class="separator:ac7546899ebbfe191ea3a8bf2403b31eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4da6d99ff7ba24d2f917e1fd98ddd877" id="r_a4da6d99ff7ba24d2f917e1fd98ddd877"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4da6d99ff7ba24d2f917e1fd98ddd877">r_instability</a> = 1e-14</td></tr>
<tr class="memdesc:a4da6d99ff7ba24d2f917e1fd98ddd877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius inside which transformations are skipped to avoid singularities. @toml [main].r_instability. <br /></td></tr>
<tr class="memdesc:a4da6d99ff7ba24d2f917e1fd98ddd877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Radius inside which transformations are skipped to avoid singularities. <br /></td></tr>
<tr class="separator:a4da6d99ff7ba24d2f917e1fd98ddd877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed32864839b149c94842801b6413d94d" id="r_aed32864839b149c94842801b6413d94d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aed32864839b149c94842801b6413d94d">core_steepness</a> = 1.0</td></tr>
<tr class="memdesc:aed32864839b149c94842801b6413d94d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls the smoothness/steepness of the core-to-envelope transition. @toml [main].core_steepness. <br /></td></tr>
<tr class="memdesc:aed32864839b149c94842801b6413d94d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Controls the smoothness/steepness of the core-to-envelope transition. <br /></td></tr>
<tr class="separator:aed32864839b149c94842801b6413d94d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33f25ff277aa8834065e04ccb9cdbdda" id="r_a33f25ff277aa8834065e04ccb9cdbdda"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a33f25ff277aa8834065e04ccb9cdbdda">surface_bdr_id</a> = 1</td></tr>
<tr class="memdesc:a33f25ff277aa8834065e04ccb9cdbdda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boundary attribute id for stellar surface. <br /></td></tr>
<tr class="separator:a33f25ff277aa8834065e04ccb9cdbdda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64cb00c8cba27267279a52207a4b5be0" id="r_a64cb00c8cba27267279a52207a4b5be0"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a64cb00c8cba27267279a52207a4b5be0">inf_bdr_id</a> = 2</td></tr>
<tr class="memdesc:a64cb00c8cba27267279a52207a4b5be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boundary attribute id for infinity in kelvin mapping. <br /></td></tr>
<tr class="separator:a64cb00c8cba27267279a52207a4b5be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2faa5aa1fef84ebbda30590d3fb2799b" id="r_a2faa5aa1fef84ebbda30590d3fb2799b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2faa5aa1fef84ebbda30590d3fb2799b">core_id</a> = 1</td></tr>
<tr class="memdesc:a2faa5aa1fef84ebbda30590d3fb2799b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Material attribute id for the core region. <br /></td></tr>
<tr class="separator:a2faa5aa1fef84ebbda30590d3fb2799b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac99aa48fe3e71e2ef57b09d48cacfef8" id="r_ac99aa48fe3e71e2ef57b09d48cacfef8"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac99aa48fe3e71e2ef57b09d48cacfef8">envelope_id</a> = 2</td></tr>
<tr class="memdesc:ac99aa48fe3e71e2ef57b09d48cacfef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Material attribute id for the envelope region. <br /></td></tr>
<tr class="separator:ac99aa48fe3e71e2ef57b09d48cacfef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36c7b05405691393d381086a27ea36ad" id="r_a36c7b05405691393d381086a27ea36ad"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a36c7b05405691393d381086a27ea36ad">vacuum_id</a> = 3</td></tr>
<tr class="memdesc:a36c7b05405691393d381086a27ea36ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Material attribute id for the external domain (if enabled) <br /></td></tr>
<tr class="separator:a36c7b05405691393d381086a27ea36ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Configuration parameters for stroid mesh generation. </p>
<p>These values are typically loaded via <code>fourdst::config::Config&lt;<a class="el" href="structstroid_1_1config_1_1_mesh_config.html" title="Configuration parameters for stroid mesh generation.">stroid::config::MeshConfig</a>&gt;</code> from a TOML file. The README shows the expected TOML layout under the <code>[main]</code> table. Unspecified keys use the defaults defined here. </p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a2faa5aa1fef84ebbda30590d3fb2799b" name="a2faa5aa1fef84ebbda30590d3fb2799b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2faa5aa1fef84ebbda30590d3fb2799b">&#9670;&#160;</a></span>core_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t stroid::config::MeshConfig::core_id = 1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Material attribute id for the core region. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].core_id </li>
</ul>
</div>
</div>
<a id="aed32864839b149c94842801b6413d94d" name="aed32864839b149c94842801b6413d94d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed32864839b149c94842801b6413d94d">&#9670;&#160;</a></span>core_steepness</h2>
@@ -159,7 +195,33 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Controls the smoothness/steepness of the core-to-envelope transition. @toml [main].core_steepness. </p>
<p>Controls the smoothness/steepness of the core-to-envelope transition. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].core_steepness </li>
</ul>
</div>
</div>
<a id="ac99aa48fe3e71e2ef57b09d48cacfef8" name="ac99aa48fe3e71e2ef57b09d48cacfef8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac99aa48fe3e71e2ef57b09d48cacfef8">&#9670;&#160;</a></span>envelope_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t stroid::config::MeshConfig::envelope_id = 2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Material attribute id for the envelope region. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].envelope_id </li>
</ul>
</div>
</div>
@@ -175,7 +237,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Flattening factor for spheroidal shaping (0 = spherical, &gt;0 = oblate). @toml [main].flattening. </p>
<p>Flattening factor for spheroidal shaping (0 = spherical, &gt;0 = oblate). </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].flattening </li>
</ul>
</div>
</div>
@@ -186,13 +253,38 @@ Public Attributes</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool stroid::config::MeshConfig::include_external_domain = false</td>
<td class="memname">bool stroid::config::MeshConfig::include_external_domain = true</td>
</tr>
</table>
</div><div class="memdoc">
<p>Whether to include an external domain extending to <code>r_infinity</code>. </p>
<p>Currently this flag does not affect mesh generation. @toml [main].include_external_domain </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].include_external_domain </li>
</ul>
</div>
</div>
<a id="a64cb00c8cba27267279a52207a4b5be0" name="a64cb00c8cba27267279a52207a4b5be0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a64cb00c8cba27267279a52207a4b5be0">&#9670;&#160;</a></span>inf_bdr_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t stroid::config::MeshConfig::inf_bdr_id = 2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Boundary attribute id for infinity in kelvin mapping. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].inf_bdr_id </li>
</ul>
</div>
</div>
@@ -208,7 +300,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Polynomial order for high-order elements. @toml [main].order. </p>
<p>Polynomial order for high-order elements. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].order </li>
</ul>
</div>
</div>
@@ -224,7 +321,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Radius of the stellar core region. @toml [main].r_core. </p>
<p>Radius of the stellar core region. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].r_core </li>
</ul>
</div>
</div>
@@ -240,7 +342,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Outer radius of the external domain when enabled. @toml [main].r_infinity. </p>
<p>Outer radius of the external domain when enabled. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].r_infinity </li>
</ul>
</div>
</div>
@@ -256,7 +363,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Radius inside which transformations are skipped to avoid singularities. @toml [main].r_instability. </p>
<p>Radius inside which transformations are skipped to avoid singularities. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].r_instability </li>
</ul>
</div>
</div>
@@ -272,7 +384,12 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Radius of the stellar surface. @toml [main].r_star. </p>
<p>Radius of the stellar surface. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].r_star </li>
</ul>
</div>
</div>
@@ -288,7 +405,54 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Number of uniform refinement passes applied after topology creation. @toml [main].refinement_levels. </p>
<p>Number of uniform refinement passes applied after topology creation. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].refinement_levels </li>
</ul>
</div>
</div>
<a id="a33f25ff277aa8834065e04ccb9cdbdda" name="a33f25ff277aa8834065e04ccb9cdbdda"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33f25ff277aa8834065e04ccb9cdbdda">&#9670;&#160;</a></span>surface_bdr_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t stroid::config::MeshConfig::surface_bdr_id = 1</td>
</tr>
</table>
</div><div class="memdoc">
<p>Boundary attribute id for stellar surface. </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].surface_bdr_id </li>
</ul>
</div>
</div>
<a id="a36c7b05405691393d381086a27ea36ad" name="a36c7b05405691393d381086a27ea36ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36c7b05405691393d381086a27ea36ad">&#9670;&#160;</a></span>vacuum_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t stroid::config::MeshConfig::vacuum_id = 3</td>
</tr>
</table>
</div><div class="memdoc">
<p>Material attribute id for the external domain (if enabled) </p>
<h1><a class="anchor" id="toml"></a>
toml</h1>
<ul>
<li>[main].vacuum_id </li>
</ul>
</div>
</div>

View File

@@ -1,12 +1,17 @@
var structstroid_1_1config_1_1_mesh_config =
[
[ "core_id", "structstroid_1_1config_1_1_mesh_config.html#a2faa5aa1fef84ebbda30590d3fb2799b", null ],
[ "core_steepness", "structstroid_1_1config_1_1_mesh_config.html#aed32864839b149c94842801b6413d94d", null ],
[ "envelope_id", "structstroid_1_1config_1_1_mesh_config.html#ac99aa48fe3e71e2ef57b09d48cacfef8", null ],
[ "flattening", "structstroid_1_1config_1_1_mesh_config.html#affad4638b0ae7b710f2b2db992f6f584", null ],
[ "include_external_domain", "structstroid_1_1config_1_1_mesh_config.html#a062652781f4f3ea0b7ca8764362a7368", null ],
[ "inf_bdr_id", "structstroid_1_1config_1_1_mesh_config.html#a64cb00c8cba27267279a52207a4b5be0", null ],
[ "order", "structstroid_1_1config_1_1_mesh_config.html#a860e78f1906acb0c3aa08d55f94de3fd", null ],
[ "r_core", "structstroid_1_1config_1_1_mesh_config.html#a5c68a895f73dc82a38a8daac22a83ad7", null ],
[ "r_infinity", "structstroid_1_1config_1_1_mesh_config.html#ac7546899ebbfe191ea3a8bf2403b31eb", null ],
[ "r_instability", "structstroid_1_1config_1_1_mesh_config.html#a4da6d99ff7ba24d2f917e1fd98ddd877", null ],
[ "r_star", "structstroid_1_1config_1_1_mesh_config.html#a3fe80a30990d484dcc39b6f9a0befc05", null ],
[ "refinement_levels", "structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981", null ]
[ "refinement_levels", "structstroid_1_1config_1_1_mesh_config.html#a8cafcbebf64ae251517118eb152de981", null ],
[ "surface_bdr_id", "structstroid_1_1config_1_1_mesh_config.html#a33f25ff277aa8834065e04ccb9cdbdda", null ],
[ "vacuum_id", "structstroid_1_1config_1_1_mesh_config.html#a36c7b05405691393d381086a27ea36ad", null ]
];

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -31,7 +31,7 @@
<tr id="projectrow">
<td id="projectlogo"><img alt="Logo" src="Logo.png"/></td>
<td id="projectalign">
<div id="projectname">stroid<span id="projectnumber">&#160;v0.1.0</span>
<div id="projectname">stroid<span id="projectnumber">&#160;v0.2.0</span>
</div>
<div id="projectbrief">Multi-block curvilinear mesh generation</div>
</td>

View File

@@ -24,6 +24,12 @@ meson test -C build
meson install -C build
```
#### Uninstalling
To uninstall stroid, if you built it using meson and the default ninja backend, you can use the following command
```bash
sudo ninja uninstall -C build
```
### Running
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.
@@ -38,11 +44,32 @@ The main way to interface with this is through the subcommands (currently only `
stroid generate -c <path/to/config/file.toml>
```
One can change the output format by specificing one of the avalible output formats __after__ generation options
```bash
stroid generate -c <path/to/config/file.toml> -o "output.vtu" vtu --ref 1
```
each output format has its own options, which can be viewed by running
```bash
stroid generate [fmt] --help
```
where ``[fmt]`` is replaced with the desired output format (e.g. vtu, netgen, mfem, etc.). Avalible output formats are:
- vtu: VTK Unstructured Grid format
- mfem: MFEM mesh format
- netgen: Netgen mesh format
- vtk: Legacy VTK format
- paraview: ParaView Data collection format
- info: Outputs mesh information to the terminal
Further, mesh generation options are loaded from a toml file, a default version of this file can be saved by running
```bash
stroid info -d
```
to save the default configuration to a file named ``default.toml``
which will save a default config file to ``default.toml``
### Configuration File
Stroid uses a TOML configuration file to specify the parameters for mesh generation. An example configuration
@@ -50,15 +77,20 @@ file is found below
```toml
[main]
core_steepness = 1.0
flattening = 0.0
include_external_domain = false
refinement_levels = 2
order = 3
include_external_domain = true
r_core = 1.5
r_star = 5.0
flattening = 0.08
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 4
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3
```
<!-- Table of what these parameters do -->
@@ -66,13 +98,18 @@ refinement_levels = 4
|-------------------------|-----------------------------------------------------------------------------------------------------|---------|
| 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 |
| include_external_domain | Whether to include an external domain extending to r_infinity | true |
| 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 |
| surface_bdr_id | The boundary ID to assign to the surface of the star | 1 |
| inf_bdr_id | The boundary ID to assign to the outer boundary of the external domain (if included) | 2 |
| core_id | The material ID to assign to the core region of the star | 1 |
| envelope_id | The material ID to assign to the envelope region of the star | 2 |
| vacuum_id | The material ID to assign to the vacuum region of the star (if included) | 3 |
If no configuration file is provided, stroid will use the default parameters listed above. Further, configuration files
@@ -106,10 +143,6 @@ int main() {
}
```
## Example Meshes
An example mesh with the default configuration parameters is shown below (coloration indicates attribute IDs of different regions):
![Example Mesh](assets/imgs/ExampleMesh.png)
## Funding
Stroid is developed as part of the 4D-STAR project.

View File

@@ -1,4 +1,6 @@
project('stroid', 'cpp', meson_version : '>= 1.3.0', version : 'v0.1.0', default_options : ['cpp_std=c++23'])
project('stroid', 'cpp', meson_version : '>= 1.3.0', version : 'v0.2.0', default_options : ['cpp_std=c++23'])
subdir('build-check')
subdir('build-config')
subdir('src')

113
package_release.sh Executable file
View File

@@ -0,0 +1,113 @@
#!/bin/bash
set -e
RELEASE_DIR="releases"
STAGING_DIR="stroid-dist"
REQUIRED_BINARIES=(
"stroid-macos-arm64"
"stroid-linux-x86_64"
"stroid-linux-arm64"
)
for bin in "${REQUIRED_BINARIES[@]}"; do
if [ ! -f "$RELEASE_DIR/$bin" ]; then
echo "Error: Missing binary $RELEASE_DIR/$bin. Run release.sh first."
exit 1
fi
done
chmod +x "$RELEASE_DIR/stroid-macos-arm64"
VERSION_OUTPUT=$("$RELEASE_DIR/stroid-macos-arm64" info -v)
VERSION=$(echo "$VERSION_OUTPUT" | awk '{print $3}')
if [ -z "$VERSION" ]; then
echo "Error: Could not extract version from binary output."
exit 1
fi
TARBALL_NAME="stroid-${VERSION}.tar.gz"
echo "Packaging Stroid version ${VERSION}..."
rm -rf "$STAGING_DIR"
mkdir -p "$STAGING_DIR/bin"
for bin in "${REQUIRED_BINARIES[@]}"; do
cp "$RELEASE_DIR/$bin" "$STAGING_DIR/bin/"
done
cat << 'EOF' > "$STAGING_DIR/install.sh"
#!/bin/bash
set -e
OS=$(uname -s)
ARCH=$(uname -m)
INSTALL_PATH=$1
echo "Detecting system: $OS ($ARCH)"
case "$OS" in
Darwin)
if [ "$ARCH" = "arm64" ]; then
SELECTED_BIN="bin/stroid-macos-arm64"
else
echo "Error: Intel Macs (x86_64) are not supported by this package."
exit 1
fi
;;
Linux)
if [ "$ARCH" = "x86_64" ]; then
SELECTED_BIN="bin/stroid-linux-x86_64"
elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
SELECTED_BIN="bin/stroid-linux-arm64"
else
echo "Error: Linux architecture $ARCH is not supported."
exit 1
fi
;;
*)
echo "Error: Operating system $OS is not supported."
exit 1
;;
esac
echo "Verifying binary integrity..."
chmod +x "$SELECTED_BIN"
if ! ./"$SELECTED_BIN" info -v > /dev/null 2>&1; then
echo "Error: The selected binary failed the version check. It may be incompatible with this system's libraries."
exit 1
fi
VERSION_INFO=$(./"$SELECTED_BIN" info -v)
echo "Verification successful: $VERSION_INFO"
if [ -z "$INSTALL_PATH" ]; then
if [ "$EUID" -eq 0 ]; then
INSTALL_PATH="/usr/local/bin"
else
INSTALL_PATH="$HOME/.local/bin"
fi
fi
mkdir -p "$INSTALL_PATH"
echo "Installing to: $INSTALL_PATH/stroid"
cp "$SELECTED_BIN" "$INSTALL_PATH/stroid"
chmod +x "$INSTALL_PATH/stroid"
echo "Installation complete."
if [[ ":$PATH:" != *":$INSTALL_PATH:"* ]]; then
echo "Note: $INSTALL_PATH is not in your PATH. Add it to your shell profile to run 'stroid' from anywhere."
fi
EOF
chmod +x "$STAGING_DIR/install.sh"
export COPYFILE_DISABLE=1
tar -cz --no-xattrs -f "$TARBALL_NAME" -C "$STAGING_DIR" .
echo "Distribution package created: $TARBALL_NAME"
rm -rf "$STAGING_DIR"

View File

@@ -25,6 +25,12 @@ meson test -C build
meson install -C build
```
#### Uninstalling
To uninstall stroid, if you built it using meson and the default ninja backend, you can use the following command
```bash
sudo ninja uninstall -C build
```
### Running
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.
@@ -39,11 +45,32 @@ The main way to interface with this is through the subcommands (currently only `
stroid generate -c <path/to/config/file.toml>
```
One can change the output format by specificing one of the avalible output formats __after__ generation options
```bash
stroid generate -c <path/to/config/file.toml> -o "output.vtu" vtu --ref 1
```
each output format has its own options, which can be viewed by running
```bash
stroid generate [fmt] --help
```
where ``[fmt]`` is replaced with the desired output format (e.g. vtu, netgen, mfem, etc.). Avalible output formats are:
- vtu: VTK Unstructured Grid format
- mfem: MFEM mesh format
- netgen: Netgen mesh format
- vtk: Legacy VTK format
- paraview: ParaView Data collection format
- info: Outputs mesh information to the terminal
Further, mesh generation options are loaded from a toml file, a default version of this file can be saved by running
```bash
stroid info -d
```
to save the default configuration to a file named ``default.toml``
which will save a default config file to ``default.toml``
### Configuration File
Stroid uses a TOML configuration file to specify the parameters for mesh generation. An example configuration
@@ -51,15 +78,20 @@ file is found below
```toml
[main]
core_steepness = 1.0
flattening = 0.0
include_external_domain = false
refinement_levels = 2
order = 3
include_external_domain = true
r_core = 1.5
r_star = 5.0
flattening = 0.08
r_infinity = 6.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 4
core_steepness = 1.0
surface_bdr_id = 1
inf_bdr_id = 2
core_id = 1
envelope_id = 2
vacuum_id = 3
```
<!-- Table of what these parameters do -->
@@ -67,13 +99,18 @@ refinement_levels = 4
|-------------------------|-----------------------------------------------------------------------------------------------------|---------|
| 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 |
| include_external_domain | Whether to include an external domain extending to r_infinity | true |
| 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 |
| surface_bdr_id | The boundary ID to assign to the surface of the star | 1 |
| inf_bdr_id | The boundary ID to assign to the outer boundary of the external domain (if included) | 2 |
| core_id | The material ID to assign to the core region of the star | 1 |
| envelope_id | The material ID to assign to the envelope region of the star | 2 |
| vacuum_id | The material ID to assign to the vacuum region of the star (if included) | 3 |
If no configuration file is provided, stroid will use the default parameters listed above. Further, configuration files

44
release.md Normal file
View File

@@ -0,0 +1,44 @@
# Generating Releases
> This document is likely only of interest to developers wishing to build release files. If you wish to use
> stroid, please refer to the main readme instructions.
## Building
Release files can be built on an arm mac using the following commands:
```bash
./release.sh
```
all release files will be placed in the `releases/` folder.
This will construct release files for arm mac, arm linux, and x86_64 linux. These should be
compatible with most systems (linux more recent than 2020 and macOS more recent than 15.0)
For those who wish to build from source see the main readme instructions.
## Packaging
The auto-generated release files are named according to the following convention:
`stroid-<os>-<arch>`, these are all statically linked so they should
just run on system. To distribute these files we want to package them into a single
archive file along with an installation script which will select the correct binary
for the host system. There is a script `package_release.sh` which will do this automatically.
Once the release files have been generated, run the following command:
```bash
./package_release.sh
```
## Uploading
Once the release files have been packaged, they can be uploaded to the github releases page. This can be done manually through the github web interface, or
automatically using the `gh` CLI tool. To upload using the CLI tool, first ensure you have it installed and authenticated with your
github account. Then run the following command:
```bash
gh release create <tag> ./stroid-release.tar.gz
```
Alternatively, you can upload the files manually through the github web interface by navigating to the releases page of
the repository and clicking on "Draft a new release". From there, you can upload the `stroid-release.tar.gz` file and
publish the release.

80
release.sh Executable file
View File

@@ -0,0 +1,80 @@
#!/bin/bash
set -e
# Confirm that the script is being run on a macOS aarch64 host
ARCHITECTURE=$(uname -m)
OS_NAME=$(uname -s)
if [[ "$OS_NAME" != "Darwin" || "$ARCHITECTURE" != "arm64" ]]; then
echo "This release script must be run on a macOS aarch64 host."
exit 1
fi
PROJECT_NAME="stroid"
MACOS_MIN_VERSION="15.0"
OUTPUT_DIR="releases"
# Confirm that Meson and Ninja are installed
if ! command -v meson &> /dev/null || ! command -v ninja &> /dev/null; then
echo "Meson and Ninja are required to build the project."
echo "Please install them via pip:"
echo " pip install meson ninja"
exit 1
fi
# Confirm that the current macOS version meets the minimum requirement
CURRENT_MACOS_VERSION=$(sw_vers -productVersion)
if [[ "$(printf '%s\n%s\n' "$MACOS_MIN_VERSION" "$CURRENT_MACOS_VERSION" | sort -V | head -n1)" != "$MACOS_MIN_VERSION" ]]; then
echo "Current macOS version ($CURRENT_MACOS_VERSION) does not meet the minimum requirement ($MACOS_MIN_VERSION)."
exit 1
fi
X86_IMAGE="quay.io/pypa/manylinux_2_28_x86_64"
ARM_IMAGE="quay.io/pypa/manylinux_2_28_aarch64"
mkdir -p "$OUTPUT_DIR"
echo "Starting release build for $PROJECT_NAME..."
echo "Building for macOS (ARM64, Target >= $MACOS_MIN_VERSION)..."
rm -rf build-mac
export MACOSX_DEPLOYMENT_TARGET=$MACOS_MIN_VERSION
meson setup build-mac \
--buildtype release \
-Dcpp_args="-mmacosx-version-min=$MACOS_MIN_VERSION" \
-Dcpp_link_args="-mmacosx-version-min=$MACOS_MIN_VERSION"
meson compile -C build-mac
cp build-mac/tools/stroid "$OUTPUT_DIR/stroid-macos-arm64"
echo "Building for Linux (x86_64) via Manylinux 2.28..."
docker run --rm --platform linux/amd64 \
-v "$(pwd)":/src -w /src \
$X86_IMAGE /bin/bash -c "
/opt/python/cp311-cp311/bin/pip install meson ninja
export PATH=/opt/python/cp311-cp311/bin:\$PATH
rm -rf build-linux-x86
meson setup build-linux-x86 --buildtype release -Dbuild_tests=false
meson compile -C build-linux-x86
cp build-linux-x86/tools/stroid /src/$OUTPUT_DIR/stroid-linux-x86_64
"
echo "Building for Linux (ARM64) via Manylinux 2.28..."
docker run --rm --platform linux/arm64 \
-v "$(pwd)":/src -w /src \
$ARM_IMAGE /bin/bash -c "
/opt/python/cp311-cp311/bin/pip install meson ninja
export PATH=/opt/python/cp311-cp311/bin:\$PATH
rm -rf build-linux-arm
meson setup build-linux-arm --buildtype release -Dbuild_tests=false
meson compile -C build-linux-arm
cp build-linux-arm/tools/stroid /src/$OUTPUT_DIR/stroid-linux-arm64
"
echo "---"
echo "All binaries generated in /$OUTPUT_DIR"
ls -lh "$OUTPUT_DIR"

View File

@@ -12,52 +12,95 @@ namespace stroid::config {
struct MeshConfig {
/**
* @brief Number of uniform refinement passes applied after topology creation.
* @toml [main].refinement_levels
* @section toml
* - [main].refinement_levels
*/
int refinement_levels = 4;
/**
* @brief Polynomial order for high-order elements.
* @toml [main].order
* @section toml
* - [main].order
*/
int order = 3;
/**
* @brief Whether to include an external domain extending to `r_infinity`.
* @details Currently this flag does not affect mesh generation.
* @toml [main].include_external_domain
* @section toml
* - [main].include_external_domain
*/
bool include_external_domain = false;
bool include_external_domain = true;
/**
* @brief Radius of the stellar core region.
* @toml [main].r_core
* @section toml
* - [main].r_core
*/
double r_core = 1.5;
/**
* @brief Radius of the stellar surface.
* @toml [main].r_star
* @section toml
* - [main].r_star
*/
double r_star = 5.0;
/**
* @brief Flattening factor for spheroidal shaping (0 = spherical, >0 = oblate).
* @toml [main].flattening
* @section toml
* - [main].flattening
*/
double flattening = 0;
/**
* @brief Outer radius of the external domain when enabled.
* @toml [main].r_infinity
* @section toml
* - [main].r_infinity
*/
double r_infinity = 6.0;
/**
* @brief Radius inside which transformations are skipped to avoid singularities.
* @toml [main].r_instability
* @section toml
* - [main].r_instability
*/
double r_instability = 1e-14;
/**
* @brief Controls the smoothness/steepness of the core-to-envelope transition.
* @toml [main].core_steepness
* @section toml
* - [main].core_steepness
*/
double core_steepness = 1.0;
/**
* @brief Boundary attribute id for stellar surface
* @section toml
* - [main].surface_bdr_id
*/
size_t surface_bdr_id = 1;
/**
* @brief Boundary attribute id for infinity in kelvin mapping
* @section toml
* - [main].inf_bdr_id
*/
size_t inf_bdr_id = 2;
/**
* @brief Material attribute id for the core region
* @section toml
* - [main].core_id
*/
size_t core_id = 1;
/**
* @brief Material attribute id for the envelope region
* @section toml
* - [main].envelope_id
*/
size_t envelope_id = 2;
/**
* @brief Material attribute id for the external domain (if enabled)
* @section toml
* - [main].vacuum_id
*/
size_t vacuum_id = 3;
};
}

View File

@@ -3,6 +3,7 @@
#include <iostream>
#include <memory>
#include <sys/proc.h>
namespace stroid::topology {
void PromoteToHighOrder(mfem::Mesh &mesh, const fourdst::config::Config<config::MeshConfig> &config) {
@@ -22,20 +23,48 @@ namespace stroid::topology {
const int vDim = fes->GetVDim();
const int nDofs = fes->GetNDofs();
const int nElem = mesh.GetNE();
std::vector<bool> processed(nDofs, false);
mfem::Array<int> vdofs;
mfem::Vector pos(vDim);
for (int i = 0; i < nDofs; ++i) {
for (int d = 0; d < vDim; ++d) {
pos(d) = nodes(fes->DofToVDof(i, d));
}
for (int elemID = 0; elemID < nElem; ++elemID) {
const int attrID = mesh.GetAttribute(elemID);
fes->GetElementVDofs(elemID, vdofs);
TransformPoint(pos, config, 0);
for (int dofID = 0; dofID < vdofs.Size(); ++dofID) {
const int vDof = vdofs[dofID];
const int scalar_dof = (fes->GetOrdering() == mfem::Ordering::byNODES) ? vDof / vDim : vDof % nDofs;
for (int d = 0; d < vDim; ++d) {
nodes(fes->DofToVDof(i, d)) = pos(d);
if (processed[scalar_dof]) {
continue; // Skip already processed dofs. This avoids doing multiple transformations of a node if it was already transformed by a neighbor
}
for (int d = 0; d < vDim; ++d) {
pos(d) = nodes(fes->DofToVDof(scalar_dof, d));
}
TransformPoint(pos, config, attrID);
for (int d = 0; d < vDim; ++d) {
nodes(fes->DofToVDof(scalar_dof, d)) = pos(d);
}
processed[scalar_dof] = true;
}
}
// for (int i = 0; i < nDofs; ++i) {
// for (int d = 0; d < vDim; ++d) {
// pos(d) = nodes(fes->DofToVDof(i, d));
// }
//
// TransformPoint(pos, config, 0);
//
// for (int d = 0; d < vDim; ++d) {
// nodes(fes->DofToVDof(i, d)) = pos(d);
// }
// }
}
}

View File

@@ -32,20 +32,6 @@ namespace stroid::topology {
pos(2) *= (1.0 - config->flattening);
}
void ApplyKelvin(mfem::Vector &pos, const fourdst::config::Config<config::MeshConfig> &config) {
const double r = pos.Norml2();
if (r <= config->r_star) {
return;
}
double xi = (r - config->r_star) / (config->r_infinity - config->r_star);
xi = std::min(0.999, std::max(0.0, xi)); // Clamp xi to [0, 0.999]
const double r_new = config->r_star + xi / (1.0 - xi);
const double scale = r_new / r;
pos *= scale;
}
void TransformPoint(mfem::Vector &pos, const fourdst::config::Config<config::MeshConfig> &config, int attribute_id) {
double l_inf = 0.0;
for (int i = 0; i < pos.Size(); ++i) {
@@ -82,9 +68,6 @@ namespace stroid::topology {
ApplySpheroidal(pos, config);
return;
}
if (l_inf <= config->r_star) {
const double xi = (l_inf - config->r_core) / (config->r_star - config->r_core);
const double r_phys = config->r_core + xi * (config->r_star - config->r_core);
@@ -97,7 +80,6 @@ namespace stroid::topology {
pos = unit_dir;
pos *= l_inf;
ApplyKelvin(pos, config);
ApplySpheroidal(pos, config);
}
}

View File

@@ -10,7 +10,7 @@ namespace stroid::topology {
std::unique_ptr<mfem::Mesh> BuildSkeleton(const fourdst::config::Config<config::MeshConfig> & config) {
int nVert = config->include_external_domain ? 24 : 16;
int nElem = config->include_external_domain ? 13 : 7;
int nBev = 6;
int nBev = config->include_external_domain ? 12 : 6;
auto mesh = std::make_unique<mfem::Mesh>(3, nVert, nElem, nBev, 3);
@@ -28,9 +28,9 @@ namespace stroid::topology {
}
const int core_v[8] = {0, 1, 3, 2, 4, 5, 7, 6};
mesh->AddHex(core_v, 1);
mesh->AddHex(core_v, config->core_id);
int shells[6][8] = {
std::vector<std::array<int, 8>> stellar_shells = {
{8, 9, 11, 10, 0, 1, 3, 2},
{4, 5, 7, 6, 12, 13, 15, 14}, // +Z face
{0, 1, 5, 4, 8, 9, 13, 12}, // -Y face
@@ -38,9 +38,25 @@ namespace stroid::topology {
{1, 3, 7, 5, 9, 11, 15, 13}, // +X face
{0, 4, 6, 2, 8, 12, 14, 10} // -X face
};
for (const auto & shell : shells) mesh->AddHex(shell, 2);
for (const auto & shell : stellar_shells) {
mesh->AddHex(shell.data(), config->envelope_id);
}
const int bdr_quads[6][4] = {
if (config->include_external_domain) {
std::vector<std::array<int, 8>> vacuum_shells;
vacuum_shells.push_back({8, 9, 13, 12, 16, 17, 21, 20});
vacuum_shells.push_back({9, 11, 15, 13, 17, 19, 23, 21});
vacuum_shells.push_back({11, 10, 14, 15, 19, 18, 22, 23});
vacuum_shells.push_back({10, 8, 12, 14, 18, 16, 20, 22});
vacuum_shells.push_back({12, 13, 15, 14, 20, 21, 23, 22});
vacuum_shells.push_back({10, 11, 9, 8, 18, 19, 17, 16});
for (const auto & shell : vacuum_shells) {
mesh->AddHex(shell.data(), config->vacuum_id);
}
}
const int surface_bdr_quads[6][4] = {
{12, 13, 15, 14},
{13, 9, 11, 15},
{9, 8, 10, 11},
@@ -49,8 +65,23 @@ namespace stroid::topology {
{14, 15, 11, 10}
};
for (const auto& bdr: bdr_quads) {
mesh->AddBdrQuad(bdr, 1);
for (const auto& bdr: surface_bdr_quads) {
mesh->AddBdrQuad(bdr, config->surface_bdr_id);
}
if (config->include_external_domain) {
const int inf_bdr_quads[6][4] = {
{16, 17, 21, 20},
{17, 19, 23, 21},
{19, 18, 22, 23},
{18, 16, 20, 22},
{18, 19, 17, 16},
{20, 21, 23, 22}
};
for (const auto& bdr: inf_bdr_quads) {
mesh->AddBdrQuad(bdr, config->inf_bdr_id);
}
}
return mesh;

View File

@@ -4,8 +4,6 @@
namespace stroid::utils {
void MarkFlippedElements(mfem::Mesh& mesh) {
size_t total_flipped = 0;
size_t total_elements = mesh.GetNE();
for (int i = 0; i < mesh.GetNE(); i++) {
mfem::ElementTransformation *T = mesh.GetElementTransformation(i);
@@ -22,17 +20,11 @@ namespace stroid::utils {
if (is_flipped) {
mesh.SetAttribute(i, 999);
total_flipped++;
}
}
std::println("Marked {}/{} elements as flipped.", total_flipped, total_elements);
}
void MarkFlippedBoundaryElements(mfem::Mesh& mesh) {
size_t total_flipped = 0;
size_t total_boundary_elements = mesh.GetNBE();
for (int i = 0; i < mesh.GetNBE(); i++) {
mfem::ElementTransformation *T = mesh.GetBdrElementTransformation(i);
const mfem::IntegrationRule &ir = mfem::IntRules.Get(T->GetGeometryType(), 2 * T->Order());
@@ -56,9 +48,7 @@ namespace stroid::utils {
if (is_flipped) {
mesh.SetBdrAttribute(i, 500);
total_flipped++;
}
}
std::println("Marked {}/{} boundary elements as flipped.", total_flipped, total_boundary_elements);
}
}

View File

@@ -1,4 +1,4 @@
[wrap-git]
url = https://github.com/4D-STAR/libconfig.git
revision = v2.0.4
depth = 1
revision = v2.0.5
depth = 1

View File

@@ -1,6 +1,7 @@
gtest_dep = dependency('gtest', main: true, required : true)
gtest_main = dependency('gtest_main', required: true)
gtest_nomain_dep = dependency('gtest', main: false, required : true)
threads_dep = dependency('threads')
# Test files for const
test_sources = [
@@ -14,6 +15,7 @@ foreach test_file : test_sources
exe_name,
test_file,
dependencies: [
threads_dep,
stroid_dep,
gtest_dep,
gtest_main
@@ -25,3 +27,5 @@ foreach test_file : test_sources
test_exe,
env: ['MESON_SOURCE_ROOT=' + meson.project_source_root(), 'MESON_BUILD_ROOT=' + meson.project_build_root()])
endforeach
subdir('sandbox')

View File

@@ -0,0 +1,15 @@
[main]
core_steepness = 1.0
flattening = 0.0
include_external_domain = true
inf_bdr_id = 2
order = 3
r_core = 1.5
r_infinity = 10.0
r_instability = 1e-14
r_star = 5.0
refinement_levels = 2
surface_bdr_id = 1
core_id = 1
envelope_id = 2
vacuum_id = 3

Some files were not shown because too many files have changed in this diff Show More