initial upload
BIN
docs/_site/pages/tutorial/stratigraphy/Tutorial_Hex_Mesh.zip
Executable file
BIN
docs/_site/pages/tutorial/stratigraphy/images/01_hex_01.png
Executable file
|
After Width: | Height: | Size: 292 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/02_hex_01_top_region.png
Executable file
|
After Width: | Height: | Size: 314 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/03_hex_01_2surfs.png
Executable file
|
After Width: | Height: | Size: 328 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/03_hex_01_2surfs_b.png
Executable file
|
After Width: | Height: | Size: 370 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/03_hex_01_set_imt_itetclr.png
Executable file
|
After Width: | Height: | Size: 350 KiB |
|
After Width: | Height: | Size: 91 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/05_fault_objects.png
Executable file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png
Executable file
|
After Width: | Height: | Size: 464 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_boundary_truncate.png
Executable file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_boundary_truncate_fence.png
Executable file
|
After Width: | Height: | Size: 156 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_hex_01_truncate.png
Executable file
|
After Width: | Height: | Size: 164 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_hex_01_truncate_close_up.png
Executable file
|
After Width: | Height: | Size: 113 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_hex_01_truncate_w_grid.png
Executable file
|
After Width: | Height: | Size: 270 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_truncate_set_id.png
Executable file
|
After Width: | Height: | Size: 362 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/06_truncate_set_id_close_up.png
Executable file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine.png
Executable file
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 333 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells.png
Executable file
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 730 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_outline.png
Executable file
|
After Width: | Height: | Size: 259 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/19_hex_01_to_tet.png
Executable file
|
After Width: | Height: | Size: 364 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks.png
Executable file
|
After Width: | Height: | Size: 170 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks_ex.png
Executable file
|
After Width: | Height: | Size: 153 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_exo_bndry_faces.png
Executable file
|
After Width: | Height: | Size: 187 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_fehm_node_zone_top.png
Executable file
|
After Width: | Height: | Size: 86 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_fehm_tet_a.png
Executable file
|
After Width: | Height: | Size: 120 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_fehm_vor_a.png
Executable file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_01_fehm_voronoi.png
Executable file
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/21_tet_wide.png
Executable file
|
After Width: | Height: | Size: 166 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/ch1.png
Executable file
|
After Width: | Height: | Size: 783 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/ch2_transparent_cbar.png
Executable file
|
After Width: | Height: | Size: 134 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/ch4.png
Executable file
|
After Width: | Height: | Size: 293 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/ch5.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
298
docs/_site/pages/tutorial/stratigraphy/images/gallery.html
Normal file
@@ -0,0 +1,298 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>Image Gallery</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<h1 id="image-gallery">Image Gallery</h1>
|
||||
|
||||
<p>Gallery written: Fri Aug 9 16:26:43 2019</p>
|
||||
|
||||
<p>Image Directory: /project/meshing/demos/Tutorial_Hex_Mesh/images</p>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: center"> </th>
|
||||
<th style="text-align: center"> </th>
|
||||
<th style="text-align: center"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: center"> </td>
|
||||
<td style="text-align: center"> </td>
|
||||
<td style="text-align: center"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>01_hex_01</strong></td>
|
||||
<td style="text-align: center"><strong>02_hex_01_top_region</strong></td>
|
||||
<td style="text-align: center"><strong>03_hex_01_2surfs</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/01_hex_01.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/02_hex_01_top_region.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/03_hex_01_2surfs.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>03_hex_01_2surfs_b</strong></td>
|
||||
<td style="text-align: center"><strong>03_hex_01_set_imt_itetclr</strong></td>
|
||||
<td style="text-align: center"><strong>03_hex_01_set_imt_itetclr_threshold_remove_material3</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/03_hex_01_2surfs_b.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/03_hex_01_set_imt_itetclr.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/03_hex_01_set_imt_itetclr_threshold_remove_material3.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>05_hex_01_fault_imt_itetclr</strong></td>
|
||||
<td style="text-align: center"><strong>06_boundary_truncate</strong></td>
|
||||
<td style="text-align: center"><strong>07_boundary_truncate_fence</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/05_hex_01_fault_imt_itetclr.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/06_boundary_truncate.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/07_boundary_truncate_fence.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>08_truncate_set_id</strong></td>
|
||||
<td style="text-align: center"><strong>09_truncate_set_id_close_up</strong></td>
|
||||
<td style="text-align: center"><strong>10_hex_01_truncate_close_up</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/08_truncate_set_id.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/09_truncate_set_id_close_up.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/10_hex_01_truncate_close_up.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>11_hex_01_truncate</strong></td>
|
||||
<td style="text-align: center"><strong>12_hex_01_truncate_w_grid</strong></td>
|
||||
<td style="text-align: center"><strong>13_hex_01_fault_refine</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/11_hex_01_truncate.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/12_hex_01_truncate_w_grid.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/13_hex_01_fault_refine.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>14_hex_01_fault_refine_close_up</strong></td>
|
||||
<td style="text-align: center"><strong>15_hex_01_insert_wells</strong></td>
|
||||
<td style="text-align: center"><strong>16_hex_01_insert_wells_close_up</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/14_hex_01_fault_refine_close_up.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/15_hex_01_insert_wells.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/16_hex_01_insert_wells_close_up.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>17_hex_01_insert_wells_outline</strong></td>
|
||||
<td style="text-align: center"><strong>18_hex_01_insert_wells_dfield_wells</strong></td>
|
||||
<td style="text-align: center"><strong>19_hex_01_to_tet</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/17_hex_01_insert_wells_outline.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/18_hex_01_insert_wells_dfield_wells.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/19_hex_01_to_tet.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>21_tet_01_exo_blocks</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_exo_blocks_ex</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_exo_bndry_faces</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_exo_blocks.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_exo_blocks_ex.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_exo_bndry_faces.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_node_zone_rad16</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_node_zone_top</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_nodes</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_node_zone_rad16.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_node_zone_top.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_nodes.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_tet_a</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_vor_a</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_vor_tet_a</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_tet_a.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_vor_a.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_vor_tet_a.png" alt="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_voronoi</strong></td>
|
||||
<td style="text-align: center"><strong>21_tet_01_fehm_voronoi_a</strong></td>
|
||||
<td style="text-align: center"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_voronoi.png" alt="" /></td>
|
||||
<td style="text-align: center"><img src="/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_voronoi_a.png" alt="" /></td>
|
||||
<td style="text-align: center"> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>End Gallery</p>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
35
docs/_site/pages/tutorial/stratigraphy/images/gallery.md
Executable file
@@ -0,0 +1,35 @@
|
||||
# Image Gallery
|
||||
|
||||
Gallery written: Fri Aug 9 16:26:43 2019
|
||||
|
||||
Image Directory: /project/meshing/demos/Tutorial\_Hex\_Mesh/images
|
||||
|
||||
|
||||
| | | |
|
||||
| :---: | :---: | :---: |
|
||||
| | | |
|
||||
| **01\_hex\_01** | **02\_hex\_01\_top\_region** | **03\_hex\_01\_2surfs** |
|
||||
| | |  |
|
||||
| **03\_hex\_01\_2surfs\_b** | **03\_hex\_01\_set\_imt\_itetclr** | **03\_hex\_01\_set\_imt\_itetclr\_threshold\_remove\_material3** |
|
||||
| | |  |
|
||||
| **05\_hex\_01\_fault\_imt\_itetclr** | **06\_boundary\_truncate** | **07\_boundary\_truncate\_fence** |
|
||||
| | |  |
|
||||
| **08\_truncate\_set\_id** | **09\_truncate\_set\_id\_close\_up** | **10\_hex\_01\_truncate\_close\_up** |
|
||||
| | |  |
|
||||
| **11\_hex\_01\_truncate** | **12\_hex\_01\_truncate\_w\_grid** | **13\_hex\_01\_fault\_refine** |
|
||||
| | |  |
|
||||
| **14\_hex\_01\_fault\_refine\_close\_up** | **15\_hex\_01\_insert\_wells** | **16\_hex\_01\_insert\_wells\_close\_up** |
|
||||
| | |  |
|
||||
| **17\_hex\_01\_insert\_wells\_outline** | **18\_hex\_01\_insert\_wells\_dfield\_wells** | **19\_hex\_01\_to\_tet** |
|
||||
| | |  |
|
||||
| **21\_tet\_01\_exo\_blocks** | **21\_tet\_01\_exo\_blocks\_ex** | **21\_tet\_01\_exo\_bndry\_faces** |
|
||||
| | |  |
|
||||
| **21\_tet\_01\_fehm\_node\_zone\_rad16** | **21\_tet\_01\_fehm\_node\_zone\_top** | **21\_tet\_01\_fehm\_nodes** |
|
||||
| | |  |
|
||||
| **21\_tet\_01\_fehm\_tet\_a** | **21\_tet\_01\_fehm\_vor\_a** | **21\_tet\_01\_fehm\_vor\_tet\_a** |
|
||||
| | |  |
|
||||
| **21\_tet\_01\_fehm\_voronoi** | **21\_tet\_01\_fehm\_voronoi\_a** |
|
||||
| |  |
|
||||
|
||||
|
||||
End Gallery
|
||||
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/01_hex_01.png
Executable file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/02_hex_01_top_region.png
Executable file
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/03_hex_01_2surfs.png
Executable file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/03_hex_01_2surfs_b.png
Executable file
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 92 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/06_boundary_truncate.png
Executable file
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/08_truncate_set_id.png
Executable file
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/11_hex_01_truncate.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 58 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/13_hex_01_fault_refine.png
Executable file
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 80 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/15_hex_01_insert_wells.png
Executable file
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 102 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/19_hex_01_to_tet.png
Executable file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/21_tet_01_exo_blocks.png
Executable file
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_nodes.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_tet_a.png
Executable file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_vor_a.png
Executable file
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
BIN
docs/_site/pages/tutorial/stratigraphy/images/gallery/21_tet_01_fehm_voronoi.png
Executable file
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
213
docs/_site/pages/tutorial/stratigraphy/index.html
Normal file
@@ -0,0 +1,213 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
|
||||
<div class="uk-inline">
|
||||
<img src="/pages/tutorial/stratigraphy/images/19_hex_01_to_tet.png" alt="" />
|
||||
<div class="uk-overlay uk-light uk-position-bottom">
|
||||
<h2 id="strat-index" class="uk-h3 uk-margin-remove">Stratigraphic Hex Mesh Tutorial</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p><a href="/pages/tutorial/stratigraphy/Tutorial_Hex_Mesh.zip" class="uk-button uk-button-primary tm-button-default uk-icon">
|
||||
Download Resources (7.5 MB)
|
||||
<span uk-icon="download"></span>
|
||||
</a></p>
|
||||
|
||||
<div uk-alert="">
|
||||
In this tutorial, we will be constructing a complex geostratigraphic mesh with a fault, distinct subsurface layering and multiple wells.
|
||||
The goal of this tutorial is to introduce the reader to intermediate and advanced LaGriT topics, including refinement, truncation, point-sets, element-sets and more.
|
||||
</div>
|
||||
|
||||
<ul class="uk-pagination">
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_01.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class="uk-active"><a href="#strat-index">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Well</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
49
docs/_site/pages/tutorial/stratigraphy/index.md
Executable file
@@ -0,0 +1,49 @@
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
|
||||
<div class="uk-inline">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/19_hex_01_to_tet.png" | relative_url }}" alt="">
|
||||
<div class="uk-overlay uk-light uk-position-bottom">
|
||||
<h2 id="strat-index" class="uk-h3 uk-margin-remove">Stratigraphic Hex Mesh Tutorial</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="{{ "/pages/tutorial/stratigraphy/Tutorial_Hex_Mesh.zip" | relative_url }}" class="uk-button uk-button-primary tm-button-default uk-icon">
|
||||
Download Resources (7.5 MB)
|
||||
<span uk-icon="download"></span>
|
||||
</a>
|
||||
|
||||
<div uk-alert>
|
||||
In this tutorial, we will be constructing a complex geostratigraphic mesh with a fault, distinct subsurface layering and multiple wells.
|
||||
The goal of this tutorial is to introduce the reader to intermediate and advanced LaGriT topics, including refinement, truncation, point-sets, element-sets and more.
|
||||
</div>
|
||||
|
||||
<ul class="uk-pagination">
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class="uk-active"><a href="#strat-index">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Well</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
263
docs/_site/pages/tutorial/stratigraphy/step_01.html
Normal file
@@ -0,0 +1,263 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<p><img data-src="/pages/tutorial/stratigraphy/images/01_hex_01.png" width="639" height="525" alt="" uk-img="" />
|
||||
<br />
|
||||
<!-- End image --></p>
|
||||
|
||||
<h2 id="build-hex" class="uk-h3 uk-margin-remove">1. Building a Hex Mesh</h2>
|
||||
|
||||
<p>First, we are going to construct a structured hex mesh. The hex mesh will span
|
||||
from 0 meters to 4000 m, 4000 m, and 3000 m, for the x/y/z coordinates
|
||||
respectively.</p>
|
||||
|
||||
<p>For both consistency and rapid parameter manipulation, these can be stored in
|
||||
variables. In LaGriT, variables are assigned using the <code class="language-plaintext highlighter-rouge">define</code> keyword.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>define / X0 / 0.
|
||||
define / X1 / 4000.
|
||||
define / Y0 / 0.
|
||||
define / Y1 / 4000.
|
||||
define / Z0 / 0.
|
||||
define / Z1 / 3000.
|
||||
|
||||
define / NX / 51
|
||||
define / NY / 51
|
||||
define / NZ / 26
|
||||
|
||||
define / MONAME / mohex
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Above, the spatial domain (<code class="language-plaintext highlighter-rouge">X0,X1,Y0,...</code>), element density (<code class="language-plaintext highlighter-rouge">NX/NY/NZ</code>), and
|
||||
mesh name (<code class="language-plaintext highlighter-rouge">MONAME</code>) have been defined.</p>
|
||||
|
||||
<p>Next, we will create an empty mesh object, with element type <code class="language-plaintext highlighter-rouge">hex</code>, using the
|
||||
<a href="/pages/docs/commands/cmo/cmo_create.html"><code class="language-plaintext highlighter-rouge">cmo / create</code></a> command:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / MONAME / / / hex
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Due to the variable assignment of <code class="language-plaintext highlighter-rouge">MONAME <- mohex</code> above, this command is
|
||||
translated internally as:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mohex / / / hex
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This empty object can then be populated with nodes and elements.
|
||||
The <a href="/pages/docs/commands/createpts/CRTPTBRICK.html"><code class="language-plaintext highlighter-rouge">createpts / brick</code></a> command will generate a defined number of
|
||||
hex elements across a defined domain.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>createpts / brick / xyz / NX NY NZ / X0 Y0 Z0 / X1 Y1 Z1 / 1 1 1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p><code class="language-plaintext highlighter-rouge">NX</code> number of hex elements, along with their corresponding vertices, have been
|
||||
created in the spatial domain spanning <code class="language-plaintext highlighter-rouge">X0->X1</code>, along with <code class="language-plaintext highlighter-rouge">NY</code> elements in
|
||||
the Y domain and <code class="language-plaintext highlighter-rouge">NZ</code> elements in the Z domain.</p>
|
||||
|
||||
<p>Optionally, <a href="/pages/docs/commands/DUMP2.html">save the mesh object</a>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dump / avs / tmp_hex_01.inp / MONAME
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This file can be rendered in certain scientific 3D visualization applications,
|
||||
such as <a href="https://www.paraview.org">ParaView</a>.</p>
|
||||
|
||||
<!-- Page left / right -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/index.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_02.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class="uk-active"><a href="#build-hex">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
105
docs/_site/pages/tutorial/stratigraphy/step_01.md
Executable file
@@ -0,0 +1,105 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/01_hex_01.png" | relative_url }}" width="639" height="525" alt="" uk-img>
|
||||
<br/>
|
||||
<!-- End image -->
|
||||
|
||||
<h2 id="build-hex" class="uk-h3 uk-margin-remove">1. Building a Hex Mesh</h2>
|
||||
|
||||
First, we are going to construct a structured hex mesh. The hex mesh will span
|
||||
from 0 meters to 4000 m, 4000 m, and 3000 m, for the x/y/z coordinates
|
||||
respectively.
|
||||
|
||||
For both consistency and rapid parameter manipulation, these can be stored in
|
||||
variables. In LaGriT, variables are assigned using the `define` keyword.
|
||||
|
||||
```
|
||||
define / X0 / 0.
|
||||
define / X1 / 4000.
|
||||
define / Y0 / 0.
|
||||
define / Y1 / 4000.
|
||||
define / Z0 / 0.
|
||||
define / Z1 / 3000.
|
||||
|
||||
define / NX / 51
|
||||
define / NY / 51
|
||||
define / NZ / 26
|
||||
|
||||
define / MONAME / mohex
|
||||
```
|
||||
|
||||
Above, the spatial domain (`X0,X1,Y0,...`), element density (`NX/NY/NZ`), and
|
||||
mesh name (`MONAME`) have been defined.
|
||||
|
||||
Next, we will create an empty mesh object, with element type `hex`, using the
|
||||
[`cmo / create`](../../docs/commands/cmo/cmo_create.md) command:
|
||||
|
||||
```
|
||||
cmo / create / MONAME / / / hex
|
||||
```
|
||||
|
||||
Due to the variable assignment of `MONAME <- mohex` above, this command is
|
||||
translated internally as:
|
||||
|
||||
```
|
||||
cmo / create / mohex / / / hex
|
||||
```
|
||||
|
||||
This empty object can then be populated with nodes and elements.
|
||||
The [`createpts / brick`](../../docs/commands/createpts/CRTPTBRICK.md) command will generate a defined number of
|
||||
hex elements across a defined domain.
|
||||
|
||||
```
|
||||
createpts / brick / xyz / NX NY NZ / X0 Y0 Z0 / X1 Y1 Z1 / 1 1 1
|
||||
```
|
||||
|
||||
`NX` number of hex elements, along with their corresponding vertices, have been
|
||||
created in the spatial domain spanning `X0->X1`, along with `NY` elements in
|
||||
the Y domain and `NZ` elements in the Z domain.
|
||||
|
||||
Optionally, [save the mesh object](../../docs/commands/DUMP2.md):
|
||||
|
||||
```
|
||||
dump / avs / tmp_hex_01.inp / MONAME
|
||||
```
|
||||
|
||||
This file can be rendered in certain scientific 3D visualization applications,
|
||||
such as [ParaView](https://www.paraview.org).
|
||||
|
||||
<!-- Page left / right -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class="uk-active"><a href="#build-hex">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
334
docs/_site/pages/tutorial/stratigraphy/step_02.html
Normal file
@@ -0,0 +1,334 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<p><img data-src="/pages/tutorial/stratigraphy/images/02_hex_01_top_region.png" width="639" height="525" alt="" uk-img="" />
|
||||
<br />
|
||||
<!-- End image --></p>
|
||||
|
||||
<h2 id="psets" class="uk-h3 uk-margin-remove">2. Define Boundaries Using Point Sets</h2>
|
||||
|
||||
<p>In LaGriT, a pset (or <em>point-set</em>) is a collection of points (nodes) within a
|
||||
mesh object. Similarly, an eltset (<em>element-set</em>) is a collection of mesh
|
||||
elements. By capturing points and elements, discrete manipulations can be
|
||||
performed on them, such as translation, removal, or attribute functions.</p>
|
||||
|
||||
<p>In this example, point sets are used to create a boundary on the top surface of
|
||||
the created hex mesh. The boundary will be the intersection of three circles on
|
||||
the top layer of the mesh.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Set vertices (imt) and cells (itetlcr) to 1
|
||||
cmo / setatt / mohex / imt / 1 0 0 / 1
|
||||
cmo / setatt / mohex / itetclr / 1 0 0 / 1
|
||||
|
||||
resetpts / itp
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Capturing a <code class="language-plaintext highlighter-rouge">pset</code> is done through the command</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / pset_name / select_type / select_type_options
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>where <code class="language-plaintext highlighter-rouge">pset_name</code> is an arbitrary variable name to store the pset into,
|
||||
<code class="language-plaintext highlighter-rouge">select_type</code> is the method of pset selection, and <code class="language-plaintext highlighter-rouge">select_type_options</code> are
|
||||
parameters specific to the chosen <code class="language-plaintext highlighter-rouge">select_type</code> for configuring the subset
|
||||
selection (see the <a href="/pages/docs/commands/PSET.html">documentation</a> for more information).</p>
|
||||
|
||||
<h3 id="21-pset-definitions">2.1 PSet Definitions</h3>
|
||||
|
||||
<p>As the boundary will live only in the top layer, nodes belonging to the top
|
||||
layer will be identified first.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_top / attribute / zic / 1 0 0 / ge / Z1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Here, a pset named <code class="language-plaintext highlighter-rouge">p_top</code> is created. This pset contains all nodes
|
||||
(stride = <code class="language-plaintext highlighter-rouge">1 0 0</code>) where the node’s Z value (<code class="language-plaintext highlighter-rouge">zic</code>) is greater than or equal to
|
||||
(<code class="language-plaintext highlighter-rouge">ge</code>) the top of the mesh (<code class="language-plaintext highlighter-rouge">Z1</code>). Remember that we defined <code class="language-plaintext highlighter-rouge">Z1</code> above for the
|
||||
initial creation of the mesh - and that by simply changing <code class="language-plaintext highlighter-rouge">Z1</code> and re-running
|
||||
the script, this pset capture will still be valid for any value of <code class="language-plaintext highlighter-rouge">Z1</code>
|
||||
(where <code class="language-plaintext highlighter-rouge">Z1 > Z0</code>).</p>
|
||||
|
||||
<p>Now that the top is defined, we will move to defining three cylindrical
|
||||
objects.</p>
|
||||
|
||||
<p>This is done through the command</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / pset_name / geom / rtz / ifirst,ilast,istride / r1,t1,z1 / r2,t2,z2 / xcen,ycen,zcen
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>which forms a pset of nodes within the cylinder or cylindrical shell given by
|
||||
radius r1 to r2, angle theta t1 to t2 and height z1 to z2.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_circle1 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 1500. 1500. 0.
|
||||
pset / p_circle2 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 2500. 2500. 0.
|
||||
pset / p_circle3 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 2500. 1500. 0.
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Above, any points within a full circle (theta = <code class="language-plaintext highlighter-rouge">360</code>) of radius <code class="language-plaintext highlighter-rouge">1100.</code> and
|
||||
within <code class="language-plaintext highlighter-rouge">Z={-1.0,1.e4}</code> are captured. Three different cylinders are created,
|
||||
where only the centroids change.</p>
|
||||
|
||||
<p>Finally, all four psets are intersected such that all points belonging to the
|
||||
union of all given sets are preserved into the point seet <code class="language-plaintext highlighter-rouge">p_region</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_region / inter / p_top p_circle1 p_circle2 p_circle3
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This creates a point-set where all points (i) live on the top layer, and (ii)
|
||||
live within the intersection of the three cylinders.</p>
|
||||
|
||||
<h3 id="22-map-psets-to-an-attribute">2.2 Map PSets to an Attribute</h3>
|
||||
|
||||
<p>As a simple sanity check during meshing, it can be helpful to map mesh
|
||||
operations to an attribute. These can be visualized at intermediate steps in
|
||||
the meshing process to provide a form of verification or debugging.</p>
|
||||
|
||||
<p>First, create an attribute using the <code class="language-plaintext highlighter-rouge">cmo / addatt</code> command:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / addatt / MONAME / id_top_region / vint / scalar / nnodes
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Here, an attribute named <code class="language-plaintext highlighter-rouge">id_top_region</code> is created within the mesh <code class="language-plaintext highlighter-rouge">MONAME</code>,
|
||||
and has type integer (<code class="language-plaintext highlighter-rouge">vint</code>), is of scalar dimensions, and is a node-based
|
||||
attribute (<code class="language-plaintext highlighter-rouge">nnodes</code>).</p>
|
||||
|
||||
<p>The attribute can be progressively filled in with different values based on
|
||||
the psets:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># Fill the entire attribute with 1
|
||||
cmo / setatt / MONAME / id_top_region / 1 0 0 / 1
|
||||
|
||||
# Color all nodes in the pset p_circle1 with the value 2
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle1 / 2
|
||||
|
||||
# Color all nodes in the pset p_circle2 with the value 2
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle2 / 3
|
||||
|
||||
# And so on...
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle3 / 4
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_region / 5
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Finally, release the psets from memory:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_top / release
|
||||
pset / p_circle1 / release
|
||||
pset / p_circle2 / release
|
||||
pset / p_circle3 / release
|
||||
pset / p_region / release
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Cutting through the mesh in ParaView, we can visualize <code class="language-plaintext highlighter-rouge">id_top_region</code> and
|
||||
validate that the mesh is being constructed as expected:</p>
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/ch2_transparent_cbar.png" data-caption="Visualization of id_top_region">
|
||||
<img src="/pages/tutorial/stratigraphy/images/ch2_transparent_cbar.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_01.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_03.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class="uk-active"><a href="#psets">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
179
docs/_site/pages/tutorial/stratigraphy/step_02.md
Executable file
@@ -0,0 +1,179 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/02_hex_01_top_region.png" | relative_url }}" width="639" height="525" alt="" uk-img>
|
||||
<br/>
|
||||
<!-- End image -->
|
||||
|
||||
<h2 id="psets" class="uk-h3 uk-margin-remove">2. Define Boundaries Using Point Sets</h2>
|
||||
|
||||
In LaGriT, a pset (or *point-set*) is a collection of points (nodes) within a
|
||||
mesh object. Similarly, an eltset (*element-set*) is a collection of mesh
|
||||
elements. By capturing points and elements, discrete manipulations can be
|
||||
performed on them, such as translation, removal, or attribute functions.
|
||||
|
||||
In this example, point sets are used to create a boundary on the top surface of
|
||||
the created hex mesh. The boundary will be the intersection of three circles on
|
||||
the top layer of the mesh.
|
||||
|
||||
```
|
||||
# Set vertices (imt) and cells (itetlcr) to 1
|
||||
cmo / setatt / mohex / imt / 1 0 0 / 1
|
||||
cmo / setatt / mohex / itetclr / 1 0 0 / 1
|
||||
|
||||
resetpts / itp
|
||||
```
|
||||
|
||||
Capturing a `pset` is done through the command
|
||||
|
||||
```
|
||||
pset / pset_name / select_type / select_type_options
|
||||
```
|
||||
|
||||
where `pset_name` is an arbitrary variable name to store the pset into,
|
||||
`select_type` is the method of pset selection, and `select_type_options` are
|
||||
parameters specific to the chosen `select_type` for configuring the subset
|
||||
selection (see the [documentation](../../docs/commands/PSET.md) for more information).
|
||||
|
||||
### 2.1 PSet Definitions
|
||||
|
||||
As the boundary will live only in the top layer, nodes belonging to the top
|
||||
layer will be identified first.
|
||||
|
||||
```
|
||||
pset / p_top / attribute / zic / 1 0 0 / ge / Z1
|
||||
```
|
||||
|
||||
Here, a pset named `p_top` is created. This pset contains all nodes
|
||||
(stride = `1 0 0`) where the node's Z value (`zic`) is greater than or equal to
|
||||
(`ge`) the top of the mesh (`Z1`). Remember that we defined `Z1` above for the
|
||||
initial creation of the mesh - and that by simply changing `Z1` and re-running
|
||||
the script, this pset capture will still be valid for any value of `Z1`
|
||||
(where `Z1 > Z0`).
|
||||
|
||||
Now that the top is defined, we will move to defining three cylindrical
|
||||
objects.
|
||||
|
||||
This is done through the command
|
||||
|
||||
```
|
||||
pset / pset_name / geom / rtz / ifirst,ilast,istride / r1,t1,z1 / r2,t2,z2 / xcen,ycen,zcen
|
||||
```
|
||||
|
||||
which forms a pset of nodes within the cylinder or cylindrical shell given by
|
||||
radius r1 to r2, angle theta t1 to t2 and height z1 to z2.
|
||||
|
||||
```
|
||||
pset / p_circle1 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 1500. 1500. 0.
|
||||
pset / p_circle2 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 2500. 2500. 0.
|
||||
pset / p_circle3 / geom / rtz / 1 0 0 / 0. 0. -1.0 / &
|
||||
1100. 360. 1.e4 / 2500. 1500. 0.
|
||||
```
|
||||
|
||||
Above, any points within a full circle (theta = `360`) of radius `1100.` and
|
||||
within `Z={-1.0,1.e4}` are captured. Three different cylinders are created,
|
||||
where only the centroids change.
|
||||
|
||||
Finally, all four psets are intersected such that all points belonging to the
|
||||
union of all given sets are preserved into the point seet `p_region`:
|
||||
|
||||
```
|
||||
pset / p_region / inter / p_top p_circle1 p_circle2 p_circle3
|
||||
```
|
||||
|
||||
This creates a point-set where all points (i) live on the top layer, and (ii)
|
||||
live within the intersection of the three cylinders.
|
||||
|
||||
### 2.2 Map PSets to an Attribute
|
||||
|
||||
As a simple sanity check during meshing, it can be helpful to map mesh
|
||||
operations to an attribute. These can be visualized at intermediate steps in
|
||||
the meshing process to provide a form of verification or debugging.
|
||||
|
||||
First, create an attribute using the `cmo / addatt` command:
|
||||
|
||||
```
|
||||
cmo / addatt / MONAME / id_top_region / vint / scalar / nnodes
|
||||
```
|
||||
|
||||
Here, an attribute named `id_top_region` is created within the mesh `MONAME`,
|
||||
and has type integer (`vint`), is of scalar dimensions, and is a node-based
|
||||
attribute (`nnodes`).
|
||||
|
||||
The attribute can be progressively filled in with different values based on
|
||||
the psets:
|
||||
|
||||
```
|
||||
# Fill the entire attribute with 1
|
||||
cmo / setatt / MONAME / id_top_region / 1 0 0 / 1
|
||||
|
||||
# Color all nodes in the pset p_circle1 with the value 2
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle1 / 2
|
||||
|
||||
# Color all nodes in the pset p_circle2 with the value 2
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle2 / 3
|
||||
|
||||
# And so on...
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_circle3 / 4
|
||||
cmo / setatt / MONAME / id_top_region / pset get p_region / 5
|
||||
```
|
||||
|
||||
Finally, release the psets from memory:
|
||||
|
||||
```
|
||||
pset / p_top / release
|
||||
pset / p_circle1 / release
|
||||
pset / p_circle2 / release
|
||||
pset / p_circle3 / release
|
||||
pset / p_region / release
|
||||
```
|
||||
|
||||
Cutting through the mesh in ParaView, we can visualize `id_top_region` and
|
||||
validate that the mesh is being constructed as expected:
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/ch2_transparent_cbar.png" | relative_url }}" data-caption="Visualization of id_top_region">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/ch2_transparent_cbar.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class="uk-active"><a href="#psets">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
256
docs/_site/pages/tutorial/stratigraphy/step_03.html
Normal file
@@ -0,0 +1,256 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<p><img data-src="/pages/tutorial/stratigraphy/images/03_hex_01_2surfs_b.png" width="639" height="525" alt="" uk-img="" />
|
||||
<br />
|
||||
<!-- End image --></p>
|
||||
|
||||
<h2 id="const-stratigraphy" class="uk-h3 uk-margin-remove">3. Constructing Stratigraphy</h2>
|
||||
|
||||
<p>In the next step of this tutorial, we will build some surfaces to define
|
||||
stratigraphy.
|
||||
In a real model, the surfaces would come from some geologic framework model
|
||||
and would define geologic or hydro-geologic horizons and topography.</p>
|
||||
|
||||
<p>These surfaces will be planar quad meshes that cut through a defined section of
|
||||
the hex mesh. Later, we will map the intersections of the surfaces to the hex
|
||||
mesh.</p>
|
||||
|
||||
<h4 id="create-the-top-surface">Create the top surface:</h4>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mosurf1
|
||||
cmo / select / mosurf1
|
||||
|
||||
define / X0S / -20.0
|
||||
define / X1S / 4020.0
|
||||
define / Y0S / -20.0
|
||||
define / Y1S / 4020.0
|
||||
|
||||
define / Z1 / 1000.
|
||||
define / Z2 / 1500.
|
||||
define / Z3 / 2500.
|
||||
define / Z4 / 500.
|
||||
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Note that the X and Y domains of the quad mesh exceed that of the hex mesh.
|
||||
This serves two purposes. First, it serves as a helpful visualization aid,
|
||||
allowing one to easily see how the surfaces cut the hex mesh without adjusting
|
||||
opacity. Second, and more importantly, it ensures that all elements cut by the
|
||||
surfaces will be properly recognized as such. Rounding errors may affect
|
||||
elements at the perimeter of the cutting planes from being properly labeled.</p>
|
||||
|
||||
<h4 id="create-the-bottom-surface">Create the bottom surface:</h4>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mosurf2
|
||||
cmo / select / mosurf2
|
||||
|
||||
define / Z1 / 1800.
|
||||
define / Z2 / 2100.
|
||||
define / Z3 / 2800.
|
||||
define / Z4 / 800.
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_02.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_04.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class="uk-active"><a href="#const-stratigraphy">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
94
docs/_site/pages/tutorial/stratigraphy/step_03.md
Executable file
@@ -0,0 +1,94 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/03_hex_01_2surfs_b.png" | relative_url }}" width="639" height="525" alt="" uk-img>
|
||||
<br/>
|
||||
<!-- End image -->
|
||||
|
||||
<h2 id="const-stratigraphy" class="uk-h3 uk-margin-remove">3. Constructing Stratigraphy</h2>
|
||||
|
||||
In the next step of this tutorial, we will build some surfaces to define
|
||||
stratigraphy.
|
||||
In a real model, the surfaces would come from some geologic framework model
|
||||
and would define geologic or hydro-geologic horizons and topography.
|
||||
|
||||
These surfaces will be planar quad meshes that cut through a defined section of
|
||||
the hex mesh. Later, we will map the intersections of the surfaces to the hex
|
||||
mesh.
|
||||
|
||||
#### Create the top surface:
|
||||
|
||||
```
|
||||
cmo / create / mosurf1
|
||||
cmo / select / mosurf1
|
||||
|
||||
define / X0S / -20.0
|
||||
define / X1S / 4020.0
|
||||
define / Y0S / -20.0
|
||||
define / Y1S / 4020.0
|
||||
|
||||
define / Z1 / 1000.
|
||||
define / Z2 / 1500.
|
||||
define / Z3 / 2500.
|
||||
define / Z4 / 500.
|
||||
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
```
|
||||
|
||||
Note that the X and Y domains of the quad mesh exceed that of the hex mesh.
|
||||
This serves two purposes. First, it serves as a helpful visualization aid,
|
||||
allowing one to easily see how the surfaces cut the hex mesh without adjusting
|
||||
opacity. Second, and more importantly, it ensures that all elements cut by the
|
||||
surfaces will be properly recognized as such. Rounding errors may affect
|
||||
elements at the perimeter of the cutting planes from being properly labeled.
|
||||
|
||||
#### Create the bottom surface:
|
||||
|
||||
```
|
||||
cmo / create / mosurf2
|
||||
cmo / select / mosurf2
|
||||
|
||||
define / Z1 / 1800.
|
||||
define / Z2 / 2100.
|
||||
define / Z3 / 2800.
|
||||
define / Z4 / 800.
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
```
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class="uk-active"><a href="#const-stratigraphy">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
329
docs/_site/pages/tutorial/stratigraphy/step_04.html
Normal file
@@ -0,0 +1,329 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/03_hex_01_set_imt_itetclr.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/03_hex_01_set_imt_itetclr_threshold_remove_material3.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous="" uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next="" uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="map-surfaces-to-mesh" class="uk-h3 uk-margin-remove">4. Map Surfaces to Mesh</h2>
|
||||
|
||||
<p>Now that the straitipgrahy has been modeled and we are comfortable with our
|
||||
results, we will map their spanning domain to the parent mesh. As done with the
|
||||
psets above, this process will be driven via attributes.</p>
|
||||
|
||||
<p>We now have two planes spanning the X,Y domain of the mesh. These planes can be
|
||||
leveraged to create different material IDs at different regions of the
|
||||
subsurface.</p>
|
||||
|
||||
<p>For example,</p>
|
||||
|
||||
<ul>
|
||||
<li>For all nodes/cells above plane 1, set their material ID to 1</li>
|
||||
<li>For all nodes/cells between plane 1 and plane 2, set their material ID to 2</li>
|
||||
<li>For all nodes/cells below plane 2, set their material ID to 3</li>
|
||||
</ul>
|
||||
|
||||
<p>This process can be accomplished by:</p>
|
||||
|
||||
<ol>
|
||||
<li>Defining the above regions using the <code class="language-plaintext highlighter-rouge">region</code> keyword</li>
|
||||
<li>Capturing the relevant nodes and elements that fall within the defined regions</li>
|
||||
<li>Setting the node and element material IDs based on the <code class="language-plaintext highlighter-rouge">psets</code> and <code class="language-plaintext highlighter-rouge">eltsets</code></li>
|
||||
</ol>
|
||||
|
||||
<h3 id="41-defining-regions">4.1 Defining Regions</h3>
|
||||
|
||||
<p>The syntax for <code class="language-plaintext highlighter-rouge">region</code> is:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> region / region_name / region_definition
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>where <code class="language-plaintext highlighter-rouge">region_definition</code> is a string composed of boolean operators and
|
||||
instantiated <code class="language-plaintext highlighter-rouge">surface</code> objects.</p>
|
||||
|
||||
<p>Recall that we have defined two planes, <code class="language-plaintext highlighter-rouge">mosurf1</code> and <code class="language-plaintext highlighter-rouge">mosurf2</code>. We would like
|
||||
to generate the <code class="language-plaintext highlighter-rouge">region</code> objects from these planes, but the arguments for
|
||||
<code class="language-plaintext highlighter-rouge">region</code> require <code class="language-plaintext highlighter-rouge">surface</code> objects.</p>
|
||||
|
||||
<p>Fortunately, we can map the planes to a <code class="language-plaintext highlighter-rouge">surface</code> very easily. The syntax for
|
||||
generating a <code class="language-plaintext highlighter-rouge">surface</code> object from a quad or triangle mesh is:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> surface / surface_name / reflect / sheet / input_mesh
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The two planes can then be mapped to surface objects:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>surface / s_1 / reflect / sheet / mosurf1
|
||||
surface / s_2 / reflect / sheet / mosurf2
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>And finally, we can remove the plane meshes and define regions:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / delete / mosurf1
|
||||
cmo / delete / mosurf2
|
||||
cmo / select / MONAME
|
||||
|
||||
region / r_1 / le s_1
|
||||
region / r_2 / gt s_1 and le s_2
|
||||
region / r_3 / gt s_2
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="42-creating-eltsets-and-psets-from-regions">4.2 Creating Eltsets and PSets from Regions</h3>
|
||||
|
||||
<p>Point sets and element sets can easily be created through region objects.
|
||||
The syntax is:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code> pset / pset_name / region / region_object / 1,0,0
|
||||
eltset / eltset_name / region / region_object
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Applying this to our <code class="language-plaintext highlighter-rouge">region</code> objects yields:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_r_1 / region / r_1 / 1 0 0
|
||||
pset / p_r_2 / region / r_2 / 1 0 0
|
||||
pset / p_r_3 / region / r_3 / 1 0 0
|
||||
|
||||
eltset / e_r_1 / region / r_1
|
||||
eltset / e_r_2 / region / r_2
|
||||
eltset / e_r_3 / region / r_3
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="43-setting-attributes-from-eltsets-and-psets">4.3 Setting Attributes from Eltsets and PSets</h3>
|
||||
|
||||
<p>Recall that the node attribute <code class="language-plaintext highlighter-rouge">imt</code> holds the ‘node colors’ of the mesh, and
|
||||
cell attribute <code class="language-plaintext highlighter-rouge">itetclr</code> stores the ‘cell colors’ (or material ID).</p>
|
||||
|
||||
<p>Let’s use the defined <code class="language-plaintext highlighter-rouge">pset</code>s and <code class="language-plaintext highlighter-rouge">eltset</code>s to change these:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / setatt / MONAME / imt / pset get p_r_1 / 1
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2 / 2
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3 / 3
|
||||
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1 / 1
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2 / 2
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3 / 3
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Our mesh’s cells and nodes now store information about their intersections
|
||||
with the cut-planes. Visualizing <code class="language-plaintext highlighter-rouge">itetclr</code>, we can see that this has behaved
|
||||
as expected:</p>
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/ch4.png" data-caption="Visualization of materialID">
|
||||
<img src="/pages/tutorial/stratigraphy/images/ch4.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_03.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_05.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class="uk-active"><a href="#map-surfaces-to-mesh">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
162
docs/_site/pages/tutorial/stratigraphy/step_04.md
Executable file
@@ -0,0 +1,162 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/03_hex_01_set_imt_itetclr.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/03_hex_01_set_imt_itetclr_threshold_remove_material3.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="map-surfaces-to-mesh" class="uk-h3 uk-margin-remove">4. Map Surfaces to Mesh</h2>
|
||||
|
||||
Now that the straitipgrahy has been modeled and we are comfortable with our
|
||||
results, we will map their spanning domain to the parent mesh. As done with the
|
||||
psets above, this process will be driven via attributes.
|
||||
|
||||
We now have two planes spanning the X,Y domain of the mesh. These planes can be
|
||||
leveraged to create different material IDs at different regions of the
|
||||
subsurface.
|
||||
|
||||
For example,
|
||||
|
||||
* For all nodes/cells above plane 1, set their material ID to 1
|
||||
* For all nodes/cells between plane 1 and plane 2, set their material ID to 2
|
||||
* For all nodes/cells below plane 2, set their material ID to 3
|
||||
|
||||
This process can be accomplished by:
|
||||
|
||||
1. Defining the above regions using the `region` keyword
|
||||
2. Capturing the relevant nodes and elements that fall within the defined regions
|
||||
3. Setting the node and element material IDs based on the `psets` and `eltsets`
|
||||
|
||||
### 4.1 Defining Regions
|
||||
|
||||
The syntax for `region` is:
|
||||
|
||||
region / region_name / region_definition
|
||||
|
||||
where `region_definition` is a string composed of boolean operators and
|
||||
instantiated `surface` objects.
|
||||
|
||||
Recall that we have defined two planes, `mosurf1` and `mosurf2`. We would like
|
||||
to generate the `region` objects from these planes, but the arguments for
|
||||
`region` require `surface` objects.
|
||||
|
||||
Fortunately, we can map the planes to a `surface` very easily. The syntax for
|
||||
generating a `surface` object from a quad or triangle mesh is:
|
||||
|
||||
surface / surface_name / reflect / sheet / input_mesh
|
||||
|
||||
The two planes can then be mapped to surface objects:
|
||||
|
||||
```
|
||||
surface / s_1 / reflect / sheet / mosurf1
|
||||
surface / s_2 / reflect / sheet / mosurf2
|
||||
```
|
||||
|
||||
And finally, we can remove the plane meshes and define regions:
|
||||
|
||||
```
|
||||
cmo / delete / mosurf1
|
||||
cmo / delete / mosurf2
|
||||
cmo / select / MONAME
|
||||
|
||||
region / r_1 / le s_1
|
||||
region / r_2 / gt s_1 and le s_2
|
||||
region / r_3 / gt s_2
|
||||
```
|
||||
|
||||
### 4.2 Creating Eltsets and PSets from Regions
|
||||
|
||||
Point sets and element sets can easily be created through region objects.
|
||||
The syntax is:
|
||||
|
||||
pset / pset_name / region / region_object / 1,0,0
|
||||
eltset / eltset_name / region / region_object
|
||||
|
||||
Applying this to our `region` objects yields:
|
||||
|
||||
```
|
||||
pset / p_r_1 / region / r_1 / 1 0 0
|
||||
pset / p_r_2 / region / r_2 / 1 0 0
|
||||
pset / p_r_3 / region / r_3 / 1 0 0
|
||||
|
||||
eltset / e_r_1 / region / r_1
|
||||
eltset / e_r_2 / region / r_2
|
||||
eltset / e_r_3 / region / r_3
|
||||
```
|
||||
|
||||
### 4.3 Setting Attributes from Eltsets and PSets
|
||||
|
||||
Recall that the node attribute `imt` holds the 'node colors' of the mesh, and
|
||||
cell attribute `itetclr` stores the 'cell colors' (or material ID).
|
||||
|
||||
Let's use the defined `pset`s and `eltset`s to change these:
|
||||
|
||||
```
|
||||
cmo / setatt / MONAME / imt / pset get p_r_1 / 1
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2 / 2
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3 / 3
|
||||
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1 / 1
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2 / 2
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3 / 3
|
||||
```
|
||||
|
||||
Our mesh's cells and nodes now store information about their intersections
|
||||
with the cut-planes. Visualizing `itetclr`, we can see that this has behaved
|
||||
as expected:
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/ch4.png" | relative_url }}" data-caption="Visualization of materialID">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/ch4.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class="uk-active"><a href="#map-surfaces-to-mesh">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
344
docs/_site/pages/tutorial/stratigraphy/step_05.html
Normal file
@@ -0,0 +1,344 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="constructing-a-fault" class="uk-h3 uk-margin-remove">5. Constructing a Fault and Layers</h2>
|
||||
|
||||
<h3 id="51-creating-a-fault-and-subsurface-layers">5.1 Creating a Fault and Subsurface Layers</h3>
|
||||
|
||||
<p>Next, we are going to map a fault and surfaces to our mesh. The objects created
|
||||
will be:</p>
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/05_fault_objects.png" data-caption="Fault and layer surfaces">
|
||||
<img src="/pages/tutorial/stratigraphy/images/05_fault_objects.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>For all five of these surfaces, we will:</p>
|
||||
|
||||
<ol>
|
||||
<li>Define the X,Y,Z extent</li>
|
||||
<li>Use <code class="language-plaintext highlighter-rouge">quadxy</code> to generate the point distribution</li>
|
||||
<li>Connect the points into a quad mesh using <code class="language-plaintext highlighter-rouge">createpts/brick</code>.</li>
|
||||
</ol>
|
||||
|
||||
<p>For the main fault mesh, this process looks like:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mosurf_fault
|
||||
cmo / select / mosurf_fault
|
||||
|
||||
define / X0S / -20.0
|
||||
define / X1S / 4020.0
|
||||
|
||||
define / Y0S / -20.0
|
||||
define / Y1S / 4020.0
|
||||
|
||||
define / Z1 / -1.e4
|
||||
define / Z2 / -1.e4
|
||||
define / Z3 / 1.e4
|
||||
define / Z4 / 1.e4
|
||||
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
cmo / printatt / mosurf / -xyz- / minmax
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>For the remaining four surfaces this process is repeated, with <code class="language-plaintext highlighter-rouge">Z1,Z2,Z3,Z4</code>
|
||||
altered independently.</p>
|
||||
|
||||
<p>The created surfaces have the names <code class="language-plaintext highlighter-rouge">mosurf1_fminus</code>, <code class="language-plaintext highlighter-rouge">mosurf2_fminus</code>,
|
||||
<code class="language-plaintext highlighter-rouge">mosurf1_fplus</code>, <code class="language-plaintext highlighter-rouge">mosurf2_fplus</code>, and <code class="language-plaintext highlighter-rouge">mosurf_fault</code>.</p>
|
||||
|
||||
<h3 id="52-define-geometry-of-hydrostratigraphic-model">5.2 Define Geometry of Hydrostratigraphic Model</h3>
|
||||
|
||||
<p>Recall in step 4 how we used two surface meshes to alter <code class="language-plaintext highlighter-rouge">imt</code> and <code class="language-plaintext highlighter-rouge">itetclr</code>
|
||||
values: first, by defining <code class="language-plaintext highlighter-rouge">surfaces</code> from the planar meshes; second, using the
|
||||
<code class="language-plaintext highlighter-rouge">surface</code> objects to define <code class="language-plaintext highlighter-rouge">region</code> objects; third, creating <code class="language-plaintext highlighter-rouge">psets</code> and
|
||||
<code class="language-plaintext highlighter-rouge">eltsets</code> from the <code class="language-plaintext highlighter-rouge">regions</code>; and finally, by modifying <code class="language-plaintext highlighter-rouge">itetclr</code> and <code class="language-plaintext highlighter-rouge">imt</code>
|
||||
through the defined <code class="language-plaintext highlighter-rouge">psets</code> and <code class="language-plaintext highlighter-rouge">eltsets</code>.</p>
|
||||
|
||||
<p>This process is replicated here. First, by creating the <code class="language-plaintext highlighter-rouge">surfaces</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>surface / s_1_fm / reflect / sheet / mosurf1_fminus
|
||||
surface / s_2_fm / reflect / sheet / mosurf2_fminus
|
||||
surface / s_1_fp / reflect / sheet / mosurf1_fplus
|
||||
surface / s_2_fp / reflect / sheet / mosurf2_fplus
|
||||
surface / s_f / reflect / sheet / mosurf_fault
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Then, by mapping the surfaces to regions (and deleting the planar meshes to
|
||||
free up memory):</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>region / r_1_fm / le s_1_fm and le s_f
|
||||
region / r_2_fm / gt s_1_fm and le s_2_fm and le s_f
|
||||
region / r_3_fm / gt s_2_fm and le s_f
|
||||
region / r_1_fp / le s_1_fp and gt s_f
|
||||
region / r_2_fp / gt s_1_fp and le s_2_fp and gt s_f
|
||||
region / r_3_fp / gt s_2_fp and gt s_f
|
||||
|
||||
cmo / delete / mosurf1_fminus
|
||||
cmo / delete / mosurf2_fminus
|
||||
cmo / delete / mosurf1_fplus
|
||||
cmo / delete / mosurf2_fplus
|
||||
cmo / delete / mosurf_fault
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>And finally, by creating <code class="language-plaintext highlighter-rouge">psets</code> and <code class="language-plaintext highlighter-rouge">eltsets</code> and using them to modify material
|
||||
attributes of the parent mesh:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pset / p_r_1_fm / region / r_1_fm / 1 0 0
|
||||
pset / p_r_2_fm / region / r_2_fm / 1 0 0
|
||||
pset / p_r_3_fm / region / r_3_fm / 1 0 0
|
||||
pset / p_r_1_fp / region / r_1_fp / 1 0 0
|
||||
pset / p_r_2_fp / region / r_2_fp / 1 0 0
|
||||
pset / p_r_3_fp / region / r_3_fp / 1 0 0
|
||||
|
||||
eltset / e_r_1_fm / region / r_1_fm
|
||||
eltset / e_r_2_fm / region / r_2_fm
|
||||
eltset / e_r_3_fm / region / r_3_fm
|
||||
eltset / e_r_1_fp / region / r_1_fp
|
||||
eltset / e_r_2_fp / region / r_2_fp
|
||||
eltset / e_r_3_fp / region / r_3_fp
|
||||
|
||||
cmo / setatt / MONAME / imt / 1 0 0 / 7
|
||||
cmo / setatt / MONAME / itetclr / 1 0 0 / 7
|
||||
|
||||
cmo / setatt / MONAME / imt / pset get p_r_1_fm / 1
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2_fm / 2
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3_fm / 3
|
||||
cmo / setatt / MONAME / imt / pset get p_r_1_fp / 4
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2_fp / 5
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3_fp / 6
|
||||
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1_fm / 1
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2_fm / 2
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3_fm / 3
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1_fp / 4
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2_fp / 5
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3_fp / 6
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The six distinct regions can now be seen by viewing <code class="language-plaintext highlighter-rouge">itetclr</code> on the
|
||||
parent mesh:</p>
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" data-caption="Visualizing the fault in relation to subsurface layers">
|
||||
<img src="/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_04.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_06.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class="uk-active"><a href="#constructing-a-fault">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
186
docs/_site/pages/tutorial/stratigraphy/step_05.md
Executable file
@@ -0,0 +1,186 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="constructing-a-fault" class="uk-h3 uk-margin-remove">5. Constructing a Fault and Layers</h2>
|
||||
|
||||
### 5.1 Creating a Fault and Subsurface Layers
|
||||
|
||||
Next, we are going to map a fault and surfaces to our mesh. The objects created
|
||||
will be:
|
||||
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/05_fault_objects.png" | relative_url }}" data-caption="Fault and layer surfaces">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/05_fault_objects.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
For all five of these surfaces, we will:
|
||||
|
||||
1. Define the X,Y,Z extent
|
||||
2. Use `quadxy` to generate the point distribution
|
||||
3. Connect the points into a quad mesh using `createpts/brick`.
|
||||
|
||||
For the main fault mesh, this process looks like:
|
||||
|
||||
```
|
||||
cmo / create / mosurf_fault
|
||||
cmo / select / mosurf_fault
|
||||
|
||||
define / X0S / -20.0
|
||||
define / X1S / 4020.0
|
||||
|
||||
define / Y0S / -20.0
|
||||
define / Y1S / 4020.0
|
||||
|
||||
define / Z1 / -1.e4
|
||||
define / Z2 / -1.e4
|
||||
define / Z3 / 1.e4
|
||||
define / Z4 / 1.e4
|
||||
|
||||
quadxy / NX NY /X0S Y0S Z1/X1S Y0S Z2/X1S Y1S Z3/X0S Y1S Z4
|
||||
createpts/brick/xyz/ NX NY 1 /1,0,0/connect
|
||||
cmo / printatt / mosurf / -xyz- / minmax
|
||||
```
|
||||
|
||||
For the remaining four surfaces this process is repeated, with `Z1,Z2,Z3,Z4`
|
||||
altered independently.
|
||||
|
||||
The created surfaces have the names `mosurf1_fminus`, `mosurf2_fminus`,
|
||||
`mosurf1_fplus`, `mosurf2_fplus`, and `mosurf_fault`.
|
||||
|
||||
### 5.2 Define Geometry of Hydrostratigraphic Model
|
||||
|
||||
Recall in step 4 how we used two surface meshes to alter `imt` and `itetclr`
|
||||
values: first, by defining `surfaces` from the planar meshes; second, using the
|
||||
`surface` objects to define `region` objects; third, creating `psets` and
|
||||
`eltsets` from the `regions`; and finally, by modifying `itetclr` and `imt`
|
||||
through the defined `psets` and `eltsets`.
|
||||
|
||||
This process is replicated here. First, by creating the `surfaces`:
|
||||
|
||||
```
|
||||
surface / s_1_fm / reflect / sheet / mosurf1_fminus
|
||||
surface / s_2_fm / reflect / sheet / mosurf2_fminus
|
||||
surface / s_1_fp / reflect / sheet / mosurf1_fplus
|
||||
surface / s_2_fp / reflect / sheet / mosurf2_fplus
|
||||
surface / s_f / reflect / sheet / mosurf_fault
|
||||
```
|
||||
|
||||
Then, by mapping the surfaces to regions (and deleting the planar meshes to
|
||||
free up memory):
|
||||
|
||||
```
|
||||
region / r_1_fm / le s_1_fm and le s_f
|
||||
region / r_2_fm / gt s_1_fm and le s_2_fm and le s_f
|
||||
region / r_3_fm / gt s_2_fm and le s_f
|
||||
region / r_1_fp / le s_1_fp and gt s_f
|
||||
region / r_2_fp / gt s_1_fp and le s_2_fp and gt s_f
|
||||
region / r_3_fp / gt s_2_fp and gt s_f
|
||||
|
||||
cmo / delete / mosurf1_fminus
|
||||
cmo / delete / mosurf2_fminus
|
||||
cmo / delete / mosurf1_fplus
|
||||
cmo / delete / mosurf2_fplus
|
||||
cmo / delete / mosurf_fault
|
||||
```
|
||||
|
||||
And finally, by creating `psets` and `eltsets` and using them to modify material
|
||||
attributes of the parent mesh:
|
||||
|
||||
```
|
||||
pset / p_r_1_fm / region / r_1_fm / 1 0 0
|
||||
pset / p_r_2_fm / region / r_2_fm / 1 0 0
|
||||
pset / p_r_3_fm / region / r_3_fm / 1 0 0
|
||||
pset / p_r_1_fp / region / r_1_fp / 1 0 0
|
||||
pset / p_r_2_fp / region / r_2_fp / 1 0 0
|
||||
pset / p_r_3_fp / region / r_3_fp / 1 0 0
|
||||
|
||||
eltset / e_r_1_fm / region / r_1_fm
|
||||
eltset / e_r_2_fm / region / r_2_fm
|
||||
eltset / e_r_3_fm / region / r_3_fm
|
||||
eltset / e_r_1_fp / region / r_1_fp
|
||||
eltset / e_r_2_fp / region / r_2_fp
|
||||
eltset / e_r_3_fp / region / r_3_fp
|
||||
|
||||
cmo / setatt / MONAME / imt / 1 0 0 / 7
|
||||
cmo / setatt / MONAME / itetclr / 1 0 0 / 7
|
||||
|
||||
cmo / setatt / MONAME / imt / pset get p_r_1_fm / 1
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2_fm / 2
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3_fm / 3
|
||||
cmo / setatt / MONAME / imt / pset get p_r_1_fp / 4
|
||||
cmo / setatt / MONAME / imt / pset get p_r_2_fp / 5
|
||||
cmo / setatt / MONAME / imt / pset get p_r_3_fp / 6
|
||||
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1_fm / 1
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2_fm / 2
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3_fm / 3
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_1_fp / 4
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_2_fp / 5
|
||||
cmo / setatt / MONAME / itetclr / eltset get e_r_3_fp / 6
|
||||
```
|
||||
|
||||
The six distinct regions can now be seen by viewing `itetclr` on the
|
||||
parent mesh:
|
||||
|
||||
|
||||
<!-- Lightbox image -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" | relative_url }}" data-caption="Visualizing the fault in relation to subsurface layers">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/05_hex_01_fault_imt_itetclr.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class="uk-active"><a href="#constructing-a-fault">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
340
docs/_site/pages/tutorial/stratigraphy/step_06.html
Normal file
@@ -0,0 +1,340 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/06_truncate_set_id.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="truncate-with-polyline" class="uk-h3 uk-margin-remove">6. Truncate with Polyline</h2>
|
||||
|
||||
<h3 id="61-create-boundary-surface">6.1 Create boundary surface</h3>
|
||||
|
||||
<p>We now have a mesh with complex stratigraphy encoded in its material ID.
|
||||
However, the domain of this mesh is a rather boring cuboid and doesn’t
|
||||
accurately reflect the geospatial domain that we are trying to model.</p>
|
||||
|
||||
<p>By importing a polyline, the exterior boundary of the mesh can be truncated.
|
||||
As in previous steps, we will use a mesh to define a <code class="language-plaintext highlighter-rouge">region</code> that will be used
|
||||
for element-wise operations.</p>
|
||||
|
||||
<p>However, the boundary is a line object. In order to use it as a surface/region,
|
||||
it must be a surface. A polyline can be turned into a vertical surface by
|
||||
‘extruding’ it in the vertical (0,0,1) direction:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>read / avs / basin_bnd_ply_rescale.inp / mo_bndry
|
||||
extrude / mo_fence / mo_bndry / const / 3200. / volume / 0. 0. -1.
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>We will also translate the extrusion so that it covers the vertical extent
|
||||
of the hex mesh:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>trans / 1 0 0 / 0. 0. -3200. / 0. 0. 0.
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/06_boundary_truncate.png" data-caption="Polyline boundary">
|
||||
<img src="/pages/tutorial/stratigraphy/images/06_boundary_truncate.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/06_boundary_truncate_fence.png" data-caption="Polyline boundary extruded">
|
||||
<img src="/pages/tutorial/stratigraphy/images/06_boundary_truncate_fence.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 id="62-truncate-mesh">6.2 Truncate mesh</h3>
|
||||
|
||||
<p>Next, we use the boundary to truncate (remove) cells outside the boundary.</p>
|
||||
|
||||
<p>There are three ways to define ‘outside’:</p>
|
||||
|
||||
<ol>
|
||||
<li>Only remove a cell if ALL vertices are outside</li>
|
||||
<li>Remove a cell if the centroid (average of all vertices) is outside</li>
|
||||
<li>Remove a cell if one or more vertices are outside</li>
|
||||
</ol>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / select / MONAME
|
||||
surface / s_bndry / reflect / sheet / mo_fence
|
||||
cmo / select / MONAME
|
||||
region / r_bndry / ge s_bndry
|
||||
pset / p_bndry / region r_bndry
|
||||
</code></pre></div></div>
|
||||
<p><strong>Method 1:</strong></p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eltset / e_delete1 / exclusive / pset get p_bndry
|
||||
</code></pre></div></div>
|
||||
|
||||
<p><strong>Method 2:</strong></p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eltset / e_delete2 / region r_bndry
|
||||
</code></pre></div></div>
|
||||
|
||||
<p><strong>Method 3:</strong></p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eltset / e_delete3 / inclusive / pset get p_bndry
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Next, add the integer cell attribute <code class="language-plaintext highlighter-rouge">id_in_out_bndry</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / addatt / MONAME / id_in_out_bndry / vint / scalar / nelements
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>and ‘color’ it based on the three element sets created above:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / setatt / MONAME / id_in_out_bndry / 1 0 0 / 4
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete3 / 3
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete2 / 2
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete1 / 1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>All elements colored 4 (the default value for <code class="language-plaintext highlighter-rouge">id_in_out_bndry</code>) are elements
|
||||
who evaluate false for all of the above <code class="language-plaintext highlighter-rouge">eltsets</code>.</p>
|
||||
|
||||
<p>Create an element set for all <code class="language-plaintext highlighter-rouge">id_in_out_bndry(cell_i) == 4</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eltset / e_delete4 / id_in_out_bndry / eq / 4
|
||||
eltset / e_delete3 / id_in_out_bndry / eq / 3
|
||||
eltset / e_delete2 / id_in_out_bndry / eq / 2
|
||||
eltset / e_delete1 / id_in_out_bndry / eq / 1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Finally, remove all elements ‘colored’ by method 3 and all elements <em>not</em> colored by any of methods 1, 2, or 3:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rmpoint / element / eltset get e_delete4
|
||||
rmpoint / element / eltset get e_delete3
|
||||
rmpoint / compress
|
||||
resetpts / itp
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/06_truncate_set_id_close_up.png" data-caption="Boundary fence intersection with hex mesh">
|
||||
<img src="/pages/tutorial/stratigraphy/images/06_truncate_set_id_close_up.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/06_hex_01_truncate_w_grid.png" data-caption="Hex mesh truncated with boundary fence">
|
||||
<img src="/pages/tutorial/stratigraphy/images/06_hex_01_truncate_w_grid.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_05.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_07.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class="uk-active"><a href="#truncate-with-polyline">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
176
docs/_site/pages/tutorial/stratigraphy/step_06.md
Executable file
@@ -0,0 +1,176 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/06_truncate_set_id.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="truncate-with-polyline" class="uk-h3 uk-margin-remove">6. Truncate with Polyline</h2>
|
||||
|
||||
### 6.1 Create boundary surface
|
||||
|
||||
We now have a mesh with complex stratigraphy encoded in its material ID.
|
||||
However, the domain of this mesh is a rather boring cuboid and doesn't
|
||||
accurately reflect the geospatial domain that we are trying to model.
|
||||
|
||||
By importing a polyline, the exterior boundary of the mesh can be truncated.
|
||||
As in previous steps, we will use a mesh to define a `region` that will be used
|
||||
for element-wise operations.
|
||||
|
||||
However, the boundary is a line object. In order to use it as a surface/region,
|
||||
it must be a surface. A polyline can be turned into a vertical surface by
|
||||
'extruding' it in the vertical (0,0,1) direction:
|
||||
|
||||
```
|
||||
read / avs / basin_bnd_ply_rescale.inp / mo_bndry
|
||||
extrude / mo_fence / mo_bndry / const / 3200. / volume / 0. 0. -1.
|
||||
```
|
||||
|
||||
We will also translate the extrusion so that it covers the vertical extent
|
||||
of the hex mesh:
|
||||
|
||||
```
|
||||
trans / 1 0 0 / 0. 0. -3200. / 0. 0. 0.
|
||||
```
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/06_boundary_truncate.png" | relative_url }}" data-caption="Polyline boundary">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/06_boundary_truncate.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/06_boundary_truncate_fence.png" | relative_url }}" data-caption="Polyline boundary extruded">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/06_boundary_truncate_fence.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### 6.2 Truncate mesh
|
||||
|
||||
Next, we use the boundary to truncate (remove) cells outside the boundary.
|
||||
|
||||
There are three ways to define 'outside':
|
||||
|
||||
1. Only remove a cell if ALL vertices are outside
|
||||
2. Remove a cell if the centroid (average of all vertices) is outside
|
||||
3. Remove a cell if one or more vertices are outside
|
||||
|
||||
```
|
||||
cmo / select / MONAME
|
||||
surface / s_bndry / reflect / sheet / mo_fence
|
||||
cmo / select / MONAME
|
||||
region / r_bndry / ge s_bndry
|
||||
pset / p_bndry / region r_bndry
|
||||
```
|
||||
**Method 1:**
|
||||
|
||||
eltset / e_delete1 / exclusive / pset get p_bndry
|
||||
|
||||
**Method 2:**
|
||||
|
||||
eltset / e_delete2 / region r_bndry
|
||||
|
||||
**Method 3:**
|
||||
|
||||
eltset / e_delete3 / inclusive / pset get p_bndry
|
||||
|
||||
Next, add the integer cell attribute `id_in_out_bndry`:
|
||||
|
||||
cmo / addatt / MONAME / id_in_out_bndry / vint / scalar / nelements
|
||||
|
||||
and 'color' it based on the three element sets created above:
|
||||
|
||||
```
|
||||
cmo / setatt / MONAME / id_in_out_bndry / 1 0 0 / 4
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete3 / 3
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete2 / 2
|
||||
cmo / setatt / MONAME / id_in_out_bndry / eltset get e_delete1 / 1
|
||||
```
|
||||
|
||||
All elements colored 4 (the default value for `id_in_out_bndry`) are elements
|
||||
who evaluate false for all of the above `eltsets`.
|
||||
|
||||
Create an element set for all `id_in_out_bndry(cell_i) == 4`:
|
||||
|
||||
```
|
||||
eltset / e_delete4 / id_in_out_bndry / eq / 4
|
||||
eltset / e_delete3 / id_in_out_bndry / eq / 3
|
||||
eltset / e_delete2 / id_in_out_bndry / eq / 2
|
||||
eltset / e_delete1 / id_in_out_bndry / eq / 1
|
||||
```
|
||||
|
||||
Finally, remove all elements 'colored' by method 3 and all elements *not* colored by any of methods 1, 2, or 3:
|
||||
|
||||
```
|
||||
rmpoint / element / eltset get e_delete4
|
||||
rmpoint / element / eltset get e_delete3
|
||||
rmpoint / compress
|
||||
resetpts / itp
|
||||
```
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/06_truncate_set_id_close_up.png" | relative_url }}" data-caption="Boundary fence intersection with hex mesh">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/06_truncate_set_id_close_up.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/06_hex_01_truncate_w_grid.png" | relative_url }}" data-caption="Hex mesh truncated with boundary fence">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/06_hex_01_truncate_w_grid.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class="uk-active"><a href="#truncate-with-polyline">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
287
docs/_site/pages/tutorial/stratigraphy/step_07.html
Normal file
@@ -0,0 +1,287 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous="" uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next="" uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="refine-fault" class="uk-h3 uk-margin-remove">7. Refine Fault</h2>
|
||||
|
||||
<p>In step 5, we defined a fault surface (named <code class="language-plaintext highlighter-rouge">s_f</code>) intersecting the mesh. In
|
||||
this section, we are going to refine the mesh where the fault intersects it.</p>
|
||||
|
||||
<p>The LaGriT command <code class="language-plaintext highlighter-rouge">intersect_elements</code> takes two meshes and creates an
|
||||
element-based attribute in mesh1 that contains the number of elements in mesh2
|
||||
that intersected the respective element in mesh1.</p>
|
||||
|
||||
<p>Performing the intersection between the mesh <code class="language-plaintext highlighter-rouge">MONAME</code> and fault <code class="language-plaintext highlighter-rouge">s_f</code>, storing
|
||||
the intersection count in attribute <code class="language-plaintext highlighter-rouge">if_inter</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / select / MONAME
|
||||
intersect_elements / MONAME / s_f / if_inter
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The attribute <code class="language-plaintext highlighter-rouge">if_inter</code> will be non-zero everywhere there is an intersection,
|
||||
and zero where there was not intersection. Taking advantage of this fact,
|
||||
we can create an eltset to refine:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eltset / e_refine / if_inter / gt / 0
|
||||
refine / eltset / eltset get e_refine
|
||||
cmo / DELATT / MONAME / if_inter
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The element density has now increased where the mesh intersects <code class="language-plaintext highlighter-rouge">s_f</code>.
|
||||
We can then run this step <em>again</em>, further refining elements along that intersection:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>intersect_elements / MONAME / s_f / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>And finally, remove the attribute <code class="language-plaintext highlighter-rouge">if_inter</code>, as it is no longer needed:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / DELATT / MONAME / if_inter
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>At this point, many different mesh objects and surfaces still exist in memory from previous steps. Let’s deallocate them and verify with the <code class="language-plaintext highlighter-rouge">memory</code> command:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / status / brief
|
||||
cmo / status / MONAME
|
||||
memory / verify
|
||||
memory / print
|
||||
|
||||
cmo / delete / s_bndry
|
||||
cmo / delete / mo_fence
|
||||
cmo / delete / mo_bndry
|
||||
cmo / delete / s_f
|
||||
cmo / delete / s_2_fp
|
||||
cmo / delete / s_1_fp
|
||||
cmo / delete / s_2_fm
|
||||
cmo / delete / s_1_fm
|
||||
cmo / delete / s_2
|
||||
cmo / delete / s_1
|
||||
|
||||
memory / verify
|
||||
memory / print
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" data-caption="Boundary fence intersection with hex mesh">
|
||||
<img src="/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_06.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_08.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class="uk-active"><a href="#refine-fault">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
128
docs/_site/pages/tutorial/stratigraphy/step_07.md
Executable file
@@ -0,0 +1,128 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="refine-fault" class="uk-h3 uk-margin-remove">7. Refine Fault</h2>
|
||||
|
||||
In step 5, we defined a fault surface (named `s_f`) intersecting the mesh. In
|
||||
this section, we are going to refine the mesh where the fault intersects it.
|
||||
|
||||
The LaGriT command `intersect_elements` takes two meshes and creates an
|
||||
element-based attribute in mesh1 that contains the number of elements in mesh2
|
||||
that intersected the respective element in mesh1.
|
||||
|
||||
Performing the intersection between the mesh `MONAME` and fault `s_f`, storing
|
||||
the intersection count in attribute `if_inter`:
|
||||
|
||||
```
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / s_f / if_inter
|
||||
```
|
||||
|
||||
The attribute `if_inter` will be non-zero everywhere there is an intersection,
|
||||
and zero where there was not intersection. Taking advantage of this fact,
|
||||
we can create an eltset to refine:
|
||||
|
||||
```
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine / eltset / eltset get e_refine
|
||||
cmo / DELATT / MONAME / if_inter
|
||||
```
|
||||
|
||||
The element density has now increased where the mesh intersects `s_f`.
|
||||
We can then run this step *again*, further refining elements along that intersection:
|
||||
|
||||
```
|
||||
intersect_elements / MONAME / s_f / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
```
|
||||
|
||||
And finally, remove the attribute `if_inter`, as it is no longer needed:
|
||||
|
||||
```
|
||||
cmo / DELATT / MONAME / if_inter
|
||||
```
|
||||
|
||||
At this point, many different mesh objects and surfaces still exist in memory from previous steps. Let's deallocate them and verify with the `memory` command:
|
||||
|
||||
```
|
||||
cmo / status / brief
|
||||
cmo / status / MONAME
|
||||
memory / verify
|
||||
memory / print
|
||||
|
||||
cmo / delete / s_bndry
|
||||
cmo / delete / mo_fence
|
||||
cmo / delete / mo_bndry
|
||||
cmo / delete / s_f
|
||||
cmo / delete / s_2_fp
|
||||
cmo / delete / s_1_fp
|
||||
cmo / delete / s_2_fm
|
||||
cmo / delete / s_1_fm
|
||||
cmo / delete / s_2
|
||||
cmo / delete / s_1
|
||||
|
||||
memory / verify
|
||||
memory / print
|
||||
```
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" | relative_url }}" data-caption="Boundary fence intersection with hex mesh">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/07_hex_01_fault_refine_close_up.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class="uk-active"><a href="#refine-fault">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
400
docs/_site/pages/tutorial/stratigraphy/step_08.html
Normal file
@@ -0,0 +1,400 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_close_up.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous="" uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next="" uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="insert-well" class="uk-h3 uk-margin-remove">8. Insert Wells</h2>
|
||||
|
||||
<p>In this step, we will generate two cylindrical ‘wells’, refine the mesh
|
||||
<code class="language-plaintext highlighter-rouge">MONAME</code> around them, and identify a line of nodes that will be the well
|
||||
source/sink for boundary conditions (ultimately writing these nodes
|
||||
to <code class="language-plaintext highlighter-rouge">zone</code> files).</p>
|
||||
|
||||
<h3 id="81-generating-cylindrical-tetrahedral-wells">8.1 Generating Cylindrical Tetrahedral Wells</h3>
|
||||
|
||||
<p>First, we define variables for the well’s position (<code class="language-plaintext highlighter-rouge">XWELL</code>,<code class="language-plaintext highlighter-rouge">YWELL</code>), radius (<code class="language-plaintext highlighter-rouge">RADIUS_WELL</code>), and number of nodes across the cylindrical radius
|
||||
(<code class="language-plaintext highlighter-rouge">NRADIUS</code>):</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>define / XWELL1 / 1234.56
|
||||
define / YWELL1 / 1987.65
|
||||
|
||||
define / XWELL2 / 2243.21
|
||||
define / YWELL2 / 1212.34
|
||||
|
||||
define / RADIUS_WELL / 25.0
|
||||
define / NRADIUS / 2
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Now, we create a cylindrical point cloud defining the first well using
|
||||
<code class="language-plaintext highlighter-rouge">createpts / rtz</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mo_well1 / / / tet
|
||||
createpts / rtz / NRADIUS 9 NZ / 0. 0. 3100. / RADIUS_WELL 360. 1500. / 1 1 1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>This creates a point cloud centered around (0,0,0) with a radius of <code class="language-plaintext highlighter-rouge">RADIUS_WELL</code>, an angular component spanning a full 360 degrees (<code class="language-plaintext highlighter-rouge">φ = {0., 360.}</code>), and a Z range of <code class="language-plaintext highlighter-rouge">{3100.,1500.}</code>.</p>
|
||||
|
||||
<p>Run <code class="language-plaintext highlighter-rouge">filter</code>, <code class="language-plaintext highlighter-rouge">rmpoint / compress</code>, and set <code class="language-plaintext highlighter-rouge">imt</code> to 1 for the well:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>filter / 1 0 0
|
||||
rmpoint / compress
|
||||
cmo / setatt / mo_well1 / imt / 1 0 0 / 1
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Next, connect the point cloud into a tetrahedral mesh and translate the
|
||||
X and Y origin to <code class="language-plaintext highlighter-rouge">{XWELL1,YWELL1}</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>connect
|
||||
resetpts / itp
|
||||
cmo / printatt / mo_well1 / -xyz- / minmax
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL1 YWELL1 0.0
|
||||
cmo / printatt / mo_well1 / -xyz- / minmax
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The first ‘well’ mesh object has been generated. Repeat this process with different parameters to create the second well:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mo_well2 / / / tet
|
||||
createpts / rtz / NRADIUS 9 NZ / 0. 0. 3100. / RADIUS_WELL 360. 2200. / 1 1 1
|
||||
filter / 1 0 0
|
||||
rmpoint / compress
|
||||
cmo / setatt / mo_well1 / imt / 1 0 0 / 1
|
||||
connect
|
||||
resetpts / itp
|
||||
cmo / printatt / mo_well2 / -xyz- / minmax
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL2 YWELL2 0.0
|
||||
cmo / printatt / mo_well2 / -xyz- / minmax
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Finally, join the two distinct wells into a single mesh object with <code class="language-plaintext highlighter-rouge">addmesh / merge</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>addmesh / merge / mo_wells / mo_well1 mo_well2
|
||||
</code></pre></div></div>
|
||||
|
||||
<h3 id="82-refining-moname-around-the-wells">8.2 Refining <code class="language-plaintext highlighter-rouge">MONAME</code> around the wells</h3>
|
||||
|
||||
<p>As we did for the fault in step 7, we refine the main mesh <code class="language-plaintext highlighter-rouge">MONAME</code> around the wells:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># First pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
|
||||
# Second pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
|
||||
# Third pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>The refinement process returns a octree grid object, which stores information about parent-children relationships, among other properties. It’s important, as the prepare to finalize the mesh for exporting, to strip this information and convert the octree grid object to a standard mesh object.</p>
|
||||
|
||||
<p>This conversion is done through the <code class="language-plaintext highlighter-rouge">grid2grid / tree_to_fe</code> command:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>grid2grid / tree_to_fe / mohex_octree / mohex
|
||||
define / MONAME / mohex_octree
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" data-caption="Node Euclidean distances to wells">
|
||||
<img src="/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3 id="83-writing-zone-files-based-on-well-distances">8.3 Writing <code class="language-plaintext highlighter-rouge">zone</code> files based on well distances</h3>
|
||||
|
||||
<p>The <code class="language-plaintext highlighter-rouge">zone</code> files are lists of node numbers in <a href="https://fehm.lanl.gov">FEHM</a> file format and used to identify materials, well source/sinks, and boundary conditions.</p>
|
||||
|
||||
<p>In this subsection, we will generate <code class="language-plaintext highlighter-rouge">zone</code> files describing all nodes within 32, 16, 8, 4, 2 and 1 meters of the wells.</p>
|
||||
|
||||
<p>To begin, we will compute the well point cloud again, as we did above. First, for well 1:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mo_pts1
|
||||
createpts / rtz / 2 2 1000 / 0. 0. 3100. / 0.0 360. 2200. / 1 1 1
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL1 YWELL1 0.0
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Then for well 2:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / mo_pts2
|
||||
createpts / rtz / 2 2 1000 / 0. 0. 3100. / 0.0 360. 2200. / 1 1 1
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL2 YWELL2 0.0
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>and joining them into a single mesh object, <code class="language-plaintext highlighter-rouge">mo_pts</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>addmesh / merge / mo_pts / mo_pts1 / mo_pts2
|
||||
cmo / select / mo_pts
|
||||
filter / 1 0 0
|
||||
rmpoint / compress
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Next, we will compute a distance field attribute, <code class="language-plaintext highlighter-rouge">dfield_well</code>, which is a node-based attribute storing the Euclidean distance from <code class="language-plaintext highlighter-rouge">node_i</code> in one mesh to the closest node in another mesh. In other words, all nodes in <code class="language-plaintext highlighter-rouge">MONAME</code> store their distance to the closest well (<code class="language-plaintext highlighter-rouge">mo_pts</code>) node.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>compute / distance_field / MONAME / mo_pts / dfield_well
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Clean up unneeded mesh objects:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / delete / mo_pts1
|
||||
cmo / delete / mo_pts2
|
||||
cmo / delete / mo_pts
|
||||
cmo / delete / mo_wells
|
||||
cmo / delete / mo_well1
|
||||
cmo / delete / mo_well2
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>And finally, for each mesh-to-well distance in {32,16,8,4,2,1} (which is stored in <code class="language-plaintext highlighter-rouge">dfield_well</code>), (i) create a pset object
|
||||
containing all nodes within that distance, and (ii) write those nodes to a <code class="language-plaintext highlighter-rouge">zone</code> file:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / select / MONAME
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 1.0
|
||||
pset / pwell / zone / zone_radius_01.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 2.0
|
||||
pset / pwell / zone / zone_radius_02.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 4.0
|
||||
pset / pwell / zone / zone_radius_04.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 8.0
|
||||
pset / pwell / zone / zone_radius_08.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 16.0
|
||||
pset / pwell / zone / zone_radius_16.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 32.0
|
||||
pset / pwell / zone / zone_radius_32.0.zone
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_07.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_09.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class="uk-active"><a href="#insert-well">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
250
docs/_site/pages/tutorial/stratigraphy/step_08.md
Executable file
@@ -0,0 +1,250 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_close_up.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
<a class="uk-position-center-left uk-position-small uk-hidden-hover" href="#" uk-slidenav-previous uk-slideshow-item="previous"></a>
|
||||
<a class="uk-position-center-right uk-position-small uk-hidden-hover" href="#" uk-slidenav-next uk-slideshow-item="next"></a>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="insert-well" class="uk-h3 uk-margin-remove">8. Insert Wells</h2>
|
||||
|
||||
In this step, we will generate two cylindrical 'wells', refine the mesh
|
||||
`MONAME` around them, and identify a line of nodes that will be the well
|
||||
source/sink for boundary conditions (ultimately writing these nodes
|
||||
to `zone` files).
|
||||
|
||||
### 8.1 Generating Cylindrical Tetrahedral Wells
|
||||
|
||||
First, we define variables for the well's position (`XWELL`,`YWELL`), radius (`RADIUS_WELL`), and number of nodes across the cylindrical radius
|
||||
(`NRADIUS`):
|
||||
|
||||
```
|
||||
define / XWELL1 / 1234.56
|
||||
define / YWELL1 / 1987.65
|
||||
|
||||
define / XWELL2 / 2243.21
|
||||
define / YWELL2 / 1212.34
|
||||
|
||||
define / RADIUS_WELL / 25.0
|
||||
define / NRADIUS / 2
|
||||
```
|
||||
|
||||
Now, we create a cylindrical point cloud defining the first well using
|
||||
`createpts / rtz`:
|
||||
|
||||
```
|
||||
cmo / create / mo_well1 / / / tet
|
||||
createpts / rtz / NRADIUS 9 NZ / 0. 0. 3100. / RADIUS_WELL 360. 1500. / 1 1 1
|
||||
```
|
||||
|
||||
This creates a point cloud centered around (0,0,0) with a radius of `RADIUS_WELL`, an angular component spanning a full 360 degrees (`φ = {0., 360.}`), and a Z range of `{3100.,1500.}`.
|
||||
|
||||
Run `filter`, `rmpoint / compress`, and set `imt` to 1 for the well:
|
||||
|
||||
```
|
||||
filter / 1 0 0
|
||||
rmpoint / compress
|
||||
cmo / setatt / mo_well1 / imt / 1 0 0 / 1
|
||||
```
|
||||
|
||||
Next, connect the point cloud into a tetrahedral mesh and translate the
|
||||
X and Y origin to `{XWELL1,YWELL1}`:
|
||||
|
||||
```
|
||||
connect
|
||||
resetpts / itp
|
||||
cmo / printatt / mo_well1 / -xyz- / minmax
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL1 YWELL1 0.0
|
||||
cmo / printatt / mo_well1 / -xyz- / minmax
|
||||
```
|
||||
|
||||
The first 'well' mesh object has been generated. Repeat this process with different parameters to create the second well:
|
||||
|
||||
```
|
||||
cmo / create / mo_well2 / / / tet
|
||||
createpts / rtz / NRADIUS 9 NZ / 0. 0. 3100. / RADIUS_WELL 360. 2200. / 1 1 1
|
||||
filter / 1 0 0
|
||||
rmpoint / compress
|
||||
cmo / setatt / mo_well1 / imt / 1 0 0 / 1
|
||||
connect
|
||||
resetpts / itp
|
||||
cmo / printatt / mo_well2 / -xyz- / minmax
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL2 YWELL2 0.0
|
||||
cmo / printatt / mo_well2 / -xyz- / minmax
|
||||
```
|
||||
|
||||
Finally, join the two distinct wells into a single mesh object with `addmesh / merge`:
|
||||
|
||||
```
|
||||
addmesh / merge / mo_wells / mo_well1 mo_well2
|
||||
```
|
||||
|
||||
### 8.2 Refining `MONAME` around the wells
|
||||
|
||||
As we did for the fault in step 7, we refine the main mesh `MONAME` around the wells:
|
||||
|
||||
```
|
||||
# First pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
|
||||
# Second pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
|
||||
# Third pass refinement
|
||||
cmo / select / MONAME
|
||||
intersect_elements / MONAME / mo_wells / if_inter
|
||||
eltset / e_refine / if_inter / gt / 0
|
||||
refine/ eltset / eltset get e_refine
|
||||
cmo / setatt / MONAME / if_inter / 1 0 0 / 0
|
||||
eltset / e_refine / delete
|
||||
```
|
||||
|
||||
The refinement process returns a octree grid object, which stores information about parent-children relationships, among other properties. It's important, as the prepare to finalize the mesh for exporting, to strip this information and convert the octree grid object to a standard mesh object.
|
||||
|
||||
This conversion is done through the `grid2grid / tree_to_fe` command:
|
||||
|
||||
```
|
||||
grid2grid / tree_to_fe / mohex_octree / mohex
|
||||
define / MONAME / mohex_octree
|
||||
```
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" | relative_url }}" data-caption="Node Euclidean distances to wells">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/08_hex_01_insert_wells_dfield_wells.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### 8.3 Writing `zone` files based on well distances
|
||||
|
||||
The `zone` files are lists of node numbers in [FEHM](https://fehm.lanl.gov) file format and used to identify materials, well source/sinks, and boundary conditions.
|
||||
|
||||
In this subsection, we will generate `zone` files describing all nodes within 32, 16, 8, 4, 2 and 1 meters of the wells.
|
||||
|
||||
To begin, we will compute the well point cloud again, as we did above. First, for well 1:
|
||||
|
||||
```
|
||||
cmo / create / mo_pts1
|
||||
createpts / rtz / 2 2 1000 / 0. 0. 3100. / 0.0 360. 2200. / 1 1 1
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL1 YWELL1 0.0
|
||||
```
|
||||
|
||||
Then for well 2:
|
||||
|
||||
```
|
||||
cmo / create / mo_pts2
|
||||
createpts / rtz / 2 2 1000 / 0. 0. 3100. / 0.0 360. 2200. / 1 1 1
|
||||
trans / 1 0 0 / 0. 0. 0. / XWELL2 YWELL2 0.0
|
||||
```
|
||||
|
||||
and joining them into a single mesh object, `mo_pts`:
|
||||
|
||||
```
|
||||
addmesh / merge / mo_pts / mo_pts1 / mo_pts2
|
||||
cmo / select / mo_pts
|
||||
filter / 1 0 0
|
||||
rmpoint / compress
|
||||
```
|
||||
|
||||
Next, we will compute a distance field attribute, `dfield_well`, which is a node-based attribute storing the Euclidean distance from `node_i` in one mesh to the closest node in another mesh. In other words, all nodes in `MONAME` store their distance to the closest well (`mo_pts`) node.
|
||||
|
||||
```
|
||||
compute / distance_field / MONAME / mo_pts / dfield_well
|
||||
```
|
||||
|
||||
Clean up unneeded mesh objects:
|
||||
|
||||
```
|
||||
cmo / delete / mo_pts1
|
||||
cmo / delete / mo_pts2
|
||||
cmo / delete / mo_pts
|
||||
cmo / delete / mo_wells
|
||||
cmo / delete / mo_well1
|
||||
cmo / delete / mo_well2
|
||||
```
|
||||
|
||||
And finally, for each mesh-to-well distance in {32,16,8,4,2,1} (which is stored in `dfield_well`), (i) create a pset object
|
||||
containing all nodes within that distance, and (ii) write those nodes to a `zone` file:
|
||||
|
||||
```
|
||||
cmo / select / MONAME
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 1.0
|
||||
pset / pwell / zone / zone_radius_01.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 2.0
|
||||
pset / pwell / zone / zone_radius_02.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 4.0
|
||||
pset / pwell / zone / zone_radius_04.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 8.0
|
||||
pset / pwell / zone / zone_radius_08.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 16.0
|
||||
pset / pwell / zone / zone_radius_16.0.zone
|
||||
|
||||
pset / pwell / attribute / dfield_well / 1 0 0 / le / 32.0
|
||||
pset / pwell / zone / zone_radius_32.0.zone
|
||||
```
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class="uk-active"><a href="#insert-well">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
288
docs/_site/pages/tutorial/stratigraphy/step_09.html
Normal file
@@ -0,0 +1,288 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow="">
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="/pages/tutorial/stratigraphy/images/19_hex_01_to_tet.png" width="1800" height="1200" alt="" uk-cover="" uk-img="target: !.uk-slideshow-items" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<p><br /></p>
|
||||
|
||||
<h2 id="convert-hex-mesh-to-tet" class="uk-h3 uk-margin-remove">9. Convert Hex Mesh to Tet</h2>
|
||||
|
||||
<p>In this final step, we will convert our mesh from hexahedral to tetrahedral
|
||||
elements.</p>
|
||||
|
||||
<p>Create an empty mesh object, <code class="language-plaintext highlighter-rouge">motet</code>, and copy all nodes from <code class="language-plaintext highlighter-rouge">MONAME</code>
|
||||
(or, <code class="language-plaintext highlighter-rouge">mohex_octree</code>) to <code class="language-plaintext highlighter-rouge">motet</code>:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / create / motet
|
||||
|
||||
copypts / motet / mohex_octree
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Next, reset the <code class="language-plaintext highlighter-rouge">imt</code> and <code class="language-plaintext highlighter-rouge">itp</code> variables and connect the nodes into
|
||||
tetrahedral elements:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo / setatt / motet / imt / 1 0 0 / 1
|
||||
cmo / setatt / motet / itp / 1 0 0 / 0
|
||||
connect
|
||||
resetpts / itp
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Interpolate the node and cell ‘colors’ over the tetrahedral mesh, using
|
||||
<code class="language-plaintext highlighter-rouge">interpolate / voronoi</code> for node-to-node interpolations, and
|
||||
<code class="language-plaintext highlighter-rouge">interpolate / map</code> for cell-to-cell interpolations:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>interpolate / voronoi / motet / imt / 1 0 0 / mohex_octree / imt
|
||||
interpolate / map / motet / itetclr / 1 0 0 / mohex_octree / itetclr
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Recall in step 5 that we set <code class="language-plaintext highlighter-rouge">imt</code> and <code class="language-plaintext highlighter-rouge">itetclr</code> to the value 7 for all
|
||||
nodes and elements that weren’t captured by the surface-created element sets.
|
||||
We can use the command <code class="language-plaintext highlighter-rouge">rmmat / 7</code> to remove all nodes and elements with
|
||||
<code class="language-plaintext highlighter-rouge">imt</code> and <code class="language-plaintext highlighter-rouge">itetclr</code> values of 7:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rmmat / 7
|
||||
rmpoint / compress
|
||||
resetpts / itp
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Check the mesh that it has all positive element volumes and no bad aspect ratios.
|
||||
Use the <code class="language-plaintext highlighter-rouge">quality</code> command for a report on these mesh quantities.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>quality
|
||||
|
||||
epsilonl, epsilonaspect: 1.3230281E-09 2.3158330E-27
|
||||
--------------------------------------------
|
||||
elements with aspect ratio < .01: 0
|
||||
elements with aspect ratio b/w .01 and .02: 0
|
||||
elements with aspect ratio b/w .02 and .05: 0
|
||||
elements with aspect ratio b/w .05 and .1 : 0
|
||||
elements with aspect ratio b/w .1 and .2 : 18
|
||||
elements with aspect ratio b/w .2 and .5 : 20538
|
||||
elements with aspect ratio b/w .5 and 1. : 631394
|
||||
min aspect ratio = 0.1613E+00 max aspect ratio = 0.9377E+00
|
||||
|
||||
epsilonvol: 8.8249408E-03
|
||||
---------------------------------------
|
||||
element volumes b/w 0.2500E+03 and 0.8706E+03: 43109
|
||||
element volumes b/w 0.8706E+03 and 0.3031E+04: 273639
|
||||
element volumes b/w 0.3031E+04 and 0.1056E+05: 98379
|
||||
element volumes b/w 0.1056E+05 and 0.3676E+05: 63075
|
||||
element volumes b/w 0.3676E+05 and 0.1280E+06: 173748
|
||||
min volume = 2.5000000E+02 max volume = 1.2800000E+05
|
||||
-----------------------------------------------------------
|
||||
651950 total elements evaluated.
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Finally, write the mesh object to AVS UCD file format and signal the EOF
|
||||
<code class="language-plaintext highlighter-rouge">finish</code> command:</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dump/avs/tet_mesh.inp/motet
|
||||
|
||||
finish
|
||||
</code></pre></div></div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_08.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class="uk-active"><a href="#convert-hex-mesh-to-tet">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
130
docs/_site/pages/tutorial/stratigraphy/step_09.md
Executable file
@@ -0,0 +1,130 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image slideshow -->
|
||||
<div class="uk-position-relative uk-visible-toggle uk-light" tabindex="-1" uk-slideshow>
|
||||
<ul class="uk-slideshow-items">
|
||||
<li>
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/19_hex_01_to_tet.png" | relative_url }}" width="1800" height="1200" alt="" uk-cover uk-img="target: !.uk-slideshow-items">
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- End image slideshow -->
|
||||
<br/>
|
||||
|
||||
<h2 id="convert-hex-mesh-to-tet" class="uk-h3 uk-margin-remove">9. Convert Hex Mesh to Tet</h2>
|
||||
|
||||
In this final step, we will convert our mesh from hexahedral to tetrahedral
|
||||
elements.
|
||||
|
||||
Create an empty mesh object, `motet`, and copy all nodes from `MONAME`
|
||||
(or, `mohex_octree`) to `motet`:
|
||||
|
||||
```
|
||||
cmo / create / motet
|
||||
|
||||
copypts / motet / mohex_octree
|
||||
```
|
||||
|
||||
Next, reset the `imt` and `itp` variables and connect the nodes into
|
||||
tetrahedral elements:
|
||||
|
||||
```
|
||||
cmo / setatt / motet / imt / 1 0 0 / 1
|
||||
cmo / setatt / motet / itp / 1 0 0 / 0
|
||||
connect
|
||||
resetpts / itp
|
||||
```
|
||||
|
||||
Interpolate the node and cell 'colors' over the tetrahedral mesh, using
|
||||
`interpolate / voronoi` for node-to-node interpolations, and
|
||||
`interpolate / map` for cell-to-cell interpolations:
|
||||
|
||||
```
|
||||
interpolate / voronoi / motet / imt / 1 0 0 / mohex_octree / imt
|
||||
interpolate / map / motet / itetclr / 1 0 0 / mohex_octree / itetclr
|
||||
```
|
||||
|
||||
Recall in step 5 that we set `imt` and `itetclr` to the value 7 for all
|
||||
nodes and elements that weren't captured by the surface-created element sets.
|
||||
We can use the command `rmmat / 7` to remove all nodes and elements with
|
||||
`imt` and `itetclr` values of 7:
|
||||
|
||||
```
|
||||
rmmat / 7
|
||||
rmpoint / compress
|
||||
resetpts / itp
|
||||
```
|
||||
|
||||
Check the mesh that it has all positive element volumes and no bad aspect ratios.
|
||||
Use the `quality` command for a report on these mesh quantities.
|
||||
|
||||
```
|
||||
quality
|
||||
|
||||
epsilonl, epsilonaspect: 1.3230281E-09 2.3158330E-27
|
||||
--------------------------------------------
|
||||
elements with aspect ratio < .01: 0
|
||||
elements with aspect ratio b/w .01 and .02: 0
|
||||
elements with aspect ratio b/w .02 and .05: 0
|
||||
elements with aspect ratio b/w .05 and .1 : 0
|
||||
elements with aspect ratio b/w .1 and .2 : 18
|
||||
elements with aspect ratio b/w .2 and .5 : 20538
|
||||
elements with aspect ratio b/w .5 and 1. : 631394
|
||||
min aspect ratio = 0.1613E+00 max aspect ratio = 0.9377E+00
|
||||
|
||||
epsilonvol: 8.8249408E-03
|
||||
---------------------------------------
|
||||
element volumes b/w 0.2500E+03 and 0.8706E+03: 43109
|
||||
element volumes b/w 0.8706E+03 and 0.3031E+04: 273639
|
||||
element volumes b/w 0.3031E+04 and 0.1056E+05: 98379
|
||||
element volumes b/w 0.1056E+05 and 0.3676E+05: 63075
|
||||
element volumes b/w 0.3676E+05 and 0.1280E+06: 173748
|
||||
min volume = 2.5000000E+02 max volume = 1.2800000E+05
|
||||
-----------------------------------------------------------
|
||||
651950 total elements evaluated.
|
||||
```
|
||||
|
||||
Finally, write the mesh object to AVS UCD file format and signal the EOF
|
||||
`finish` command:
|
||||
|
||||
```
|
||||
dump/avs/tet_mesh.inp/motet
|
||||
|
||||
finish
|
||||
```
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class="uk-active"><a href="#convert-hex-mesh-to-tet">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
315
docs/_site/pages/tutorial/stratigraphy/step_10_exo.html
Normal file
@@ -0,0 +1,315 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<p><img data-src="/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks.png" width="639" height="525" alt="" uk-img="" />
|
||||
<br />
|
||||
<!-- End image --></p>
|
||||
|
||||
<h2 id="dump-exo" class="uk-h3 uk-margin-remove">10.2 Write ExodusII Files</h2>
|
||||
|
||||
<p>Write the tet mesh in Exodus II format. This format defines materials as blocks
|
||||
and is element based.
|
||||
The node properties will be ignored. The below image shows the Exodus mesh
|
||||
(read with GMV or ParaView) with material blocks shown in ‘exploded’ view.</p>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks_ex.png" data-caption="Exodus cells 'exploded' by material blocks">
|
||||
<img src="/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks_ex.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We can define the boundary faces for this mesh by extracting the 2D external
|
||||
surface and writing the element and face id for each. These can be written as
|
||||
sets based on element selection.</p>
|
||||
|
||||
<p>In this example we use <code class="language-plaintext highlighter-rouge">settets/normal</code> to assign values 1-6 to the faces
|
||||
based on normal directions where <code class="language-plaintext highlighter-rouge">1=bot</code>, <code class="language-plaintext highlighter-rouge">2=top</code>, <code class="language-plaintext highlighter-rouge">3=right</code>, <code class="language-plaintext highlighter-rouge">4=back</code>, <code class="language-plaintext highlighter-rouge">5=left</code>,
|
||||
<code class="language-plaintext highlighter-rouge">6=front</code>. Define element sets for top, bottom, and lump sides
|
||||
all together for set 3. Write the faceset relation for each element set.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>define / FILENAME / ss3_sides.faceset
|
||||
define / SS_ID / 3
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
|
||||
|
||||
define / FILENAME / ss1_bottom.faceset
|
||||
define / SS_ID / 1
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
|
||||
|
||||
define / FILENAME / ss2_top.faceset
|
||||
define / SS_ID / 2
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Write the Exodus II mesh with the faceset files. This mesh and associated
|
||||
face sets can be viewed with GMV or ParaView.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dump/exo/ mesh_fs.exo / MO_MESH / / / facesets &
|
||||
ss1_bottom.faceset, ss2_top.faceset, ss3_sides.faceset
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Check the summary report to see that mesh quantities are as expected.
|
||||
The report shows 6 element blocks (materials) and 3 side sets with appropriate face counts.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Title: LAGRIT TO EXODUSII
|
||||
number of dimension: 3
|
||||
number of nodes: 115547
|
||||
number of elements: 651950
|
||||
number of edges: 0
|
||||
number of edge blocks: 0
|
||||
number of element blocks: 6
|
||||
number of face blocks: 0
|
||||
number of node sets: 0
|
||||
number of edge sets: 0
|
||||
number of element sets: 0
|
||||
number of side sets: 3
|
||||
number of face sets: 0
|
||||
number of node maps: 0
|
||||
number of edge maps: 0
|
||||
number of face maps: 0
|
||||
number of element maps: 0
|
||||
|
||||
|
||||
------------------------------------------
|
||||
EXPSS loop:
|
||||
1 Side Set tag: 1 Faces: 4098
|
||||
2 Side Set tag: 2 Faces: 4640
|
||||
3 Side Set tag: 3 Faces: 11812
|
||||
------------------------------------------
|
||||
Done ExodusII Side Sets Total: 3
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Image show the Exodus face sets (side sets) with bottom (blue), top (red), and sides (light blue).</p>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/21_tet_01_exo_bndry_faces.png" data-caption="Exodus side sets: bottom (blue), top (red), and sides (light blue).">
|
||||
<img src="/pages/tutorial/stratigraphy/images/21_tet_01_exo_bndry_faces.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_10_fehm.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_fehm.html">10.1 Write FEHM Files</a></li>
|
||||
<li class="uk-active"><a href="#dump-exo">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
154
docs/_site/pages/tutorial/stratigraphy/step_10_exo.md
Executable file
@@ -0,0 +1,154 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks.png" | relative_url }}" width="639" height="525" alt="" uk-img>
|
||||
<br/>
|
||||
<!-- End image -->
|
||||
|
||||
<h2 id="dump-exo" class="uk-h3 uk-margin-remove">10.2 Write ExodusII Files</h2>
|
||||
|
||||
Write the tet mesh in Exodus II format. This format defines materials as blocks
|
||||
and is element based.
|
||||
The node properties will be ignored. The below image shows the Exodus mesh
|
||||
(read with GMV or ParaView) with material blocks shown in 'exploded' view.
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks_ex.png" | relative_url }}" data-caption="Exodus cells 'exploded' by material blocks">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_exo_blocks_ex.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
We can define the boundary faces for this mesh by extracting the 2D external
|
||||
surface and writing the element and face id for each. These can be written as
|
||||
sets based on element selection.
|
||||
|
||||
In this example we use `settets/normal` to assign values 1-6 to the faces
|
||||
based on normal directions where `1=bot`, `2=top`, `3=right`, `4=back`, `5=left`,
|
||||
`6=front`. Define element sets for top, bottom, and lump sides
|
||||
all together for set 3. Write the faceset relation for each element set.
|
||||
|
||||
```
|
||||
define / FILENAME / ss3_sides.faceset
|
||||
define / SS_ID / 3
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
|
||||
|
||||
define / FILENAME / ss1_bottom.faceset
|
||||
define / SS_ID / 1
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
|
||||
|
||||
define / FILENAME / ss2_top.faceset
|
||||
define / SS_ID / 2
|
||||
cmo / copy / mo_tmp / mo_surf
|
||||
cmo / select / mo_tmp
|
||||
eltset / e_keep / itetclr / eq / SS_ID
|
||||
eltset / e_delete / not / e_keep
|
||||
rmpoint / element / eltset get e_delete
|
||||
rmpoint / compress
|
||||
dump / avs2 / FILENAME / mo_tmp / 0 0 0 2
|
||||
cmo / delete / mo_tmp
|
||||
```
|
||||
|
||||
Write the Exodus II mesh with the faceset files. This mesh and associated
|
||||
face sets can be viewed with GMV or ParaView.
|
||||
|
||||
```
|
||||
dump/exo/ mesh_fs.exo / MO_MESH / / / facesets &
|
||||
ss1_bottom.faceset, ss2_top.faceset, ss3_sides.faceset
|
||||
```
|
||||
|
||||
Check the summary report to see that mesh quantities are as expected.
|
||||
The report shows 6 element blocks (materials) and 3 side sets with appropriate face counts.
|
||||
|
||||
```
|
||||
Title: LAGRIT TO EXODUSII
|
||||
number of dimension: 3
|
||||
number of nodes: 115547
|
||||
number of elements: 651950
|
||||
number of edges: 0
|
||||
number of edge blocks: 0
|
||||
number of element blocks: 6
|
||||
number of face blocks: 0
|
||||
number of node sets: 0
|
||||
number of edge sets: 0
|
||||
number of element sets: 0
|
||||
number of side sets: 3
|
||||
number of face sets: 0
|
||||
number of node maps: 0
|
||||
number of edge maps: 0
|
||||
number of face maps: 0
|
||||
number of element maps: 0
|
||||
|
||||
|
||||
------------------------------------------
|
||||
EXPSS loop:
|
||||
1 Side Set tag: 1 Faces: 4098
|
||||
2 Side Set tag: 2 Faces: 4640
|
||||
3 Side Set tag: 3 Faces: 11812
|
||||
------------------------------------------
|
||||
Done ExodusII Side Sets Total: 3
|
||||
```
|
||||
|
||||
Image show the Exodus face sets (side sets) with bottom (blue), top (red), and sides (light blue).
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_exo_bndry_faces.png" | relative_url }}" data-caption="Exodus side sets: bottom (blue), top (red), and sides (light blue).">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_exo_bndry_faces.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_fehm.html" | relative_url }}">10.1 Write FEHM Files</a></li>
|
||||
<li class="uk-active"><a href="#dump-exo">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
320
docs/_site/pages/tutorial/stratigraphy/step_10_fehm.html
Normal file
@@ -0,0 +1,320 @@
|
||||
<html lang="en-gb" dir="ltr">
|
||||
|
||||
<head>
|
||||
<title>LaGriT</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="LaGriT : LaGriT is a library providing mesh generation and optimization for a variety of polyhedra and dimensions.">
|
||||
<link href="https://fonts.googleapis.com/css?family=Do+Hyeon|Fira+Sans" rel="stylesheet">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Reg-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="preload" href="https://getuikit.com/fonts/ProximaNova-Light-webfont.woff2" as="font" type="font/woff2" crossorigin="">
|
||||
<link rel="stylesheet" href="/assets/css/uikit_theme.css">
|
||||
<link rel="icon" type="image/x-icon" href="https://www.lanl.gov/favicon.ico">
|
||||
<link rel="stylesheet" type="text/css" href="/assets/css/footer.css">
|
||||
|
||||
<!-- load stylesheets -->
|
||||
<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/he/1.2.0/he.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.6.2/marked.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js" defer=""></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/uikit/dist/js/uikit-icons.min.js?1180" defer=""></script>
|
||||
<script src="https://getuikit.com/assets/highlightjs/highlight.min.js" defer=""></script>
|
||||
<script src="https://getuikit.com/app/main.min.js?1180" defer=""></script>
|
||||
<script src="https://www.googletagmanager.com/gtag/js?id=UA-42150424-1" async=""></script>
|
||||
|
||||
<!-- tipuesearch files -->
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/normalize.css">
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch_content.js"></script>
|
||||
<link rel="stylesheet" href="/assets/tipuesearch/css/tipuesearch.css">
|
||||
<script src="/assets/tipuesearch/tipuesearch_set.js"></script>
|
||||
<script src="/assets/tipuesearch/tipuesearch.min.js"></script>
|
||||
|
||||
<!-- Finally, load global style to overwrite template, tipuesearch, etc. -->
|
||||
<!--<link rel="stylesheet" href="/assets/globalstyle.css">-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div>
|
||||
<!-- Header -->
|
||||
<div uk-sticky="media: 960" class="uk-navbar-container tm-navbar-container uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 100%; color: #212328;">
|
||||
<div class="uk-container uk-container-expand">
|
||||
<nav class="uk-navbar">
|
||||
<div class="uk-navbar-left">
|
||||
<a href="/" class="uk-navbar-item uk-logo" style="font-family: 'Do Hyeon', sans-serif; color: white;">
|
||||
<img uk-img src="/assets/img/logo.png" width="50" class="uk-margin-small-right" alt="LANL logo">
|
||||
LaGriT
|
||||
</a>
|
||||
</div>
|
||||
<div class="uk-navbar-right">
|
||||
<ul class="uk-navbar-nav uk-visible@m">
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/tutorial/index">Tutorials</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT"><span uk-icon="github"></span></a></li>
|
||||
|
||||
<!-- Begin search bar -->
|
||||
<div class="nav-overlay uk-navbar-right">
|
||||
<a class="uk-navbar-toggle" uk-search-icon uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<div class="nav-overlay uk-navbar-left uk-flex-1" hidden>
|
||||
<div class="uk-navbar-item uk-width-expand">
|
||||
<form class="uk-search uk-search-navbar uk-width-1-1" action="https://lanl.github.io/LaGriT/search/">
|
||||
<input class="uk-search-input" name="q" type="search" id="tipue_search_input" placeholder="Search..." autofocus>
|
||||
</form>
|
||||
</div>
|
||||
<a class="uk-navbar-toggle" uk-close uk-toggle="target: .nav-overlay; animation: uk-animation-fade" href="#"></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tipue_search_input').tipuesearch({
|
||||
'show': 10,
|
||||
'newWindow' : true,
|
||||
'showURL' : true,
|
||||
'showTitleCount' : true,
|
||||
'descriptiveWords' : 20,
|
||||
'highlightTerms' : true,
|
||||
'mode': 'static',
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- End search bar -->
|
||||
|
||||
</ul>
|
||||
|
||||
<a uk-navbar-toggle-icon="" href="#offcanvas" uk-toggle="" class="uk-navbar-toggle uk-hidden@m uk-icon uk-navbar-toggle-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="navbar-toggle-icon">
|
||||
<rect y="9" width="20" height="2"></rect>
|
||||
<rect y="3" width="20" height="2"></rect>
|
||||
<rect y="15" width="20" height="2"></rect>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<div class="uk-sticky-placeholder" style="height: 80px; margin: 0px;"></div>
|
||||
<!-- End Header -->
|
||||
|
||||
<!-- Main Body text -->
|
||||
<div class="tm-main uk-section uk-section-default">
|
||||
<div class="uk-container uk-container-small uk-position-relative">
|
||||
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="/pages/tutorial/index.html">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<p><img data-src="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_voronoi.png" width="639" height="525" alt="" uk-img="" />
|
||||
<br />
|
||||
<!-- End image --></p>
|
||||
|
||||
<h2 id="dump-fehm" class="uk-h3 uk-margin-remove">10. Write FEHM Files</h2>
|
||||
|
||||
<p>Write out a series of files for the FEHM flow and transport code.
|
||||
FEHM uses the control volume finite element method (CVFE) with node materials
|
||||
and properties assigned to the mesh nodes.</p>
|
||||
|
||||
<p>The image shows the tetrahedral mesh colored by the 6 node <code class="language-plaintext highlighter-rouge">imt</code> (materials)
|
||||
values and showing the voronoi cell edges.</p>
|
||||
|
||||
<p>These two close-up images show the relationship between the Delaunay tet mesh
|
||||
edges and the voronoi volumes, the latter of which are used by FEHM.
|
||||
The mesh nodes are the vertices of the tetrahedral elements and are the center
|
||||
of each voronoi volume.</p>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_tet_a.png" data-caption="Close-up view of mesh with Delaunay tetrahedral cells">
|
||||
<img src="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_tet_a.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_vor_a.png" data-caption="Close-up view of mesh with Voronoi cells">
|
||||
<img src="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_vor_a.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>We prepare the tet mesh for FEHM with the following commands. These ensure
|
||||
that there are no duplicate nodes and sets the elements to a single material.
|
||||
We also make sure nodes are not doubly defined and parent-child chains are
|
||||
removed.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cmo/select/motet
|
||||
resetpts/parent
|
||||
filter/1,0,0
|
||||
rmpoint/compress
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>LaGriT can write a full set of FEHM model files with a single command.
|
||||
The <code class="language-plaintext highlighter-rouge">keepatt</code> option will save attributes tagging nodes on the outside boundaries.
|
||||
These can be used to define additional point sets and zones for FEHM.</p>
|
||||
|
||||
<p>The following files are written:</p>
|
||||
|
||||
<ul>
|
||||
<li><code class="language-plaintext highlighter-rouge">.fehm</code> - mesh coordinates and geometry</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">_material.zone</code> - node imt (material) zone lists</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">_outside.zone</code> - node external boundary zone lists</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">_outside_vor.area</code> - node external boundary area lists</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">_interface.zone</code> - zone lists for nodes along material interfaces</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">_multi_mat.zone</code> - lists of node pairs connected across material interfaces</li>
|
||||
<li><code class="language-plaintext highlighter-rouge">.stor</code> - FEHM format file giving the voronoi (control volume) associated with each node and the sparce matrix structure</li>
|
||||
</ul>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dump / fehm / mesh / motet / keepatt
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Review the report written to the screen and the output file (<code class="language-plaintext highlighter-rouge">lagrit.out</code>) for
|
||||
mesh quantities.
|
||||
These are usful summaries and will help in finding problems in the mesh design.
|
||||
Check that material node counts are as expected.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*** Write FEHMN GEOM AND ZONE FILES ***
|
||||
*********dump_material_lists********
|
||||
Minimum material ID value = 1
|
||||
Maximum material ID value = 6
|
||||
Total possible materials = 6
|
||||
Material 1 has 23944 nodes. #nodes/nnodes is 0.207223027945
|
||||
Material 2 has 6867 nodes. #nodes/nnodes is 0.594303607941E-01
|
||||
Material 3 has 16072 nodes. #nodes/nnodes is 0.139094918966
|
||||
Material 4 has 33192 nodes. #nodes/nnodes is 0.287259727716
|
||||
Material 5 has 12871 nodes. #nodes/nnodes is 0.111391901970
|
||||
Material 6 has 22601 nodes. #nodes/nnodes is 0.195600062609
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Check that the Sparse Matrix volumes are positive.
|
||||
Negative coefficient values can result from poorly formed tetrahedra.
|
||||
These usually occur on non-convex boundaries.
|
||||
FEHM will still run but accuracy may be impacted.</p>
|
||||
|
||||
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>*** Construct and Compress Sparse Matrix:3D ***
|
||||
*** Compress Area Coefficient Values ***
|
||||
|
||||
AMatbld3d_stor: Matrix compress_eps: 0.1000000E-07
|
||||
AMatbld3d_stor: Local epsilon: 0.1000000E-14
|
||||
AMatbld3d_stor: *****Zero Negative Coefficients ******
|
||||
AMatbld3d_stor: Number of 'zero' (< compress_eps) coefs 0
|
||||
AMatbld3d_stor: npoints = 115547 ncoefs = 964637
|
||||
AMatbld3d_stor: Number of unique coefs = 313
|
||||
AMatbld3d_stor: Maximum num. connections to a node = 25
|
||||
AMatbld3d_stor: Volume min = 7.4999999E+02
|
||||
AMatbld3d_stor: Volume max = 7.6800000E+05
|
||||
AMatbld3d_stor: Total Volume: 2.3846400E+10
|
||||
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
|
||||
AMatbld3d_stor: abs(Aij/xij) max = 1.3500000E+02
|
||||
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
|
||||
AMatbld3d_stor: (Aij/xij) min = -1.3500000E+02
|
||||
AMatbld3d_stor Matrix coefficient values stored as scalar area/distance
|
||||
AMatbld3d_stor Matrix compression used for graph and coefficient values
|
||||
ascii STOR file written with name mesh.stor
|
||||
</code></pre></div></div>
|
||||
|
||||
<p>Visually inspect the mesh for the assignment of boundary zones such as top nodes.</p>
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid="" uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_node_zone_top.png" data-caption="GMV visualization of mesh nodes, with top nodes colored red">
|
||||
<img src="/pages/tutorial/stratigraphy/images/21_tet_01_fehm_node_zone_top.png" alt="" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="/pages/tutorial/stratigraphy/step_09.html"><span class="uk-margin-small-right" uk-pagination-previous=""></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="/pages/tutorial/stratigraphy/step_10_exo.html">Next <span class="uk-margin-small-left" uk-pagination-next=""></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/index.html">Index</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_01.html">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_02.html">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_03.html">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_04.html">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_05.html">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_06.html">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_07.html">7. Refine Fault</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_08.html">8. Insert Wells</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_09.html">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class="uk-active"><a href="#dump-fehm">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="/pages/tutorial/stratigraphy/step_10_exo.html">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="/pages/tutorial/stratigraphy/images/gallery.html" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Begin footer -->
|
||||
<footer class="footer-distributed">
|
||||
<div class="footer-right">
|
||||
<div><img src="/assets/img/lanl_logo_white.png" height="80"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer-left lg-background-color">
|
||||
<p class="footer-links" style="font-family: 'Fira Sans', sans-serif; color: white;">
|
||||
<a href="/">Home</a>
|
||||
·
|
||||
<a href="/pylagrit/original/index.html">PyLaGriT</a>
|
||||
·
|
||||
<a href="https://int.lanl.gov/org/ddste/aldcels/ees/index.shtml">EES-16</a>
|
||||
·
|
||||
<a href="/pages/licensing.html">License</a>
|
||||
·
|
||||
<a href="https://lagrit.lanl.gov/">Contact</a>
|
||||
</p>
|
||||
|
||||
<p>© 2019 Los Alamos National Laboratory</p>
|
||||
<p>EES-16 | Computational Earth Science</p>
|
||||
<p>LA-CC-15-069</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<!-- Begin Navigation Bar -->
|
||||
<div id="offcanvas" uk-offcanvas="mode: push; overlay: true" class="uk-offcanvas">
|
||||
<div class="uk-offcanvas-bar">
|
||||
<div class="uk-panel">
|
||||
<ul class="uk-nav uk-nav-default tm-nav">
|
||||
<form class="uk-search uk-search-default" action="https://lanl.github.io/LaGriT/search/">
|
||||
<a href="" uk-search-icon></a>
|
||||
<input class="uk-search-input" type="search" placeholder="" name="q" id="tipue_search_input_mobile">
|
||||
</form>
|
||||
<li class="uk-nav-header">General</li>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/pages/commands">Commands</a></li>
|
||||
<li><a href="/pages/release">Release Notes</a></li>
|
||||
<li><a href="/pages/publications">Publications</a></li>
|
||||
<li><a href="http://github.com/lanl/LaGriT">GitHub</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Navigation Bar -->
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
158
docs/_site/pages/tutorial/stratigraphy/step_10_fehm.md
Executable file
@@ -0,0 +1,158 @@
|
||||
<!-- Begin breadcrumb -->
|
||||
<ul class="uk-breadcrumb">
|
||||
<li><a href="{{ "/pages/tutorial/index.html" | relative_url }}">Tutorials & Examples</a></li>
|
||||
<li><span>Stratigraphic Hex Mesh Tutorial</span></li>
|
||||
</ul>
|
||||
<!-- End breadcrumb -->
|
||||
|
||||
<!-- Begin image -->
|
||||
<img data-src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_voronoi.png" | relative_url }}" width="639" height="525" alt="" uk-img>
|
||||
<br/>
|
||||
<!-- End image -->
|
||||
|
||||
<h2 id="dump-fehm" class="uk-h3 uk-margin-remove">10. Write FEHM Files</h2>
|
||||
|
||||
Write out a series of files for the FEHM flow and transport code.
|
||||
FEHM uses the control volume finite element method (CVFE) with node materials
|
||||
and properties assigned to the mesh nodes.
|
||||
|
||||
The image shows the tetrahedral mesh colored by the 6 node `imt` (materials)
|
||||
values and showing the voronoi cell edges.
|
||||
|
||||
These two close-up images show the relationship between the Delaunay tet mesh
|
||||
edges and the voronoi volumes, the latter of which are used by FEHM.
|
||||
The mesh nodes are the vertices of the tetrahedral elements and are the center
|
||||
of each voronoi volume.
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_tet_a.png" | relative_url }}" data-caption="Close-up view of mesh with Delaunay tetrahedral cells">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_tet_a.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_vor_a.png" | relative_url }}" data-caption="Close-up view of mesh with Voronoi cells">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_vor_a.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
We prepare the tet mesh for FEHM with the following commands. These ensure
|
||||
that there are no duplicate nodes and sets the elements to a single material.
|
||||
We also make sure nodes are not doubly defined and parent-child chains are
|
||||
removed.
|
||||
|
||||
```
|
||||
cmo/select/motet
|
||||
resetpts/parent
|
||||
filter/1,0,0
|
||||
rmpoint/compress
|
||||
```
|
||||
|
||||
LaGriT can write a full set of FEHM model files with a single command.
|
||||
The `keepatt` option will save attributes tagging nodes on the outside boundaries.
|
||||
These can be used to define additional point sets and zones for FEHM.
|
||||
|
||||
The following files are written:
|
||||
|
||||
* `.fehm` - mesh coordinates and geometry
|
||||
* `_material.zone` - node imt (material) zone lists
|
||||
* `_outside.zone` - node external boundary zone lists
|
||||
* `_outside_vor.area` - node external boundary area lists
|
||||
* `_interface.zone` - zone lists for nodes along material interfaces
|
||||
* `_multi_mat.zone` - lists of node pairs connected across material interfaces
|
||||
* `.stor` - FEHM format file giving the voronoi (control volume) associated with each node and the sparce matrix structure
|
||||
|
||||
```
|
||||
dump / fehm / mesh / motet / keepatt
|
||||
```
|
||||
|
||||
Review the report written to the screen and the output file (`lagrit.out`) for
|
||||
mesh quantities.
|
||||
These are usful summaries and will help in finding problems in the mesh design.
|
||||
Check that material node counts are as expected.
|
||||
|
||||
```
|
||||
*** Write FEHMN GEOM AND ZONE FILES ***
|
||||
*********dump_material_lists********
|
||||
Minimum material ID value = 1
|
||||
Maximum material ID value = 6
|
||||
Total possible materials = 6
|
||||
Material 1 has 23944 nodes. #nodes/nnodes is 0.207223027945
|
||||
Material 2 has 6867 nodes. #nodes/nnodes is 0.594303607941E-01
|
||||
Material 3 has 16072 nodes. #nodes/nnodes is 0.139094918966
|
||||
Material 4 has 33192 nodes. #nodes/nnodes is 0.287259727716
|
||||
Material 5 has 12871 nodes. #nodes/nnodes is 0.111391901970
|
||||
Material 6 has 22601 nodes. #nodes/nnodes is 0.195600062609
|
||||
```
|
||||
|
||||
Check that the Sparse Matrix volumes are positive.
|
||||
Negative coefficient values can result from poorly formed tetrahedra.
|
||||
These usually occur on non-convex boundaries.
|
||||
FEHM will still run but accuracy may be impacted.
|
||||
|
||||
```
|
||||
*** Construct and Compress Sparse Matrix:3D ***
|
||||
*** Compress Area Coefficient Values ***
|
||||
|
||||
AMatbld3d_stor: Matrix compress_eps: 0.1000000E-07
|
||||
AMatbld3d_stor: Local epsilon: 0.1000000E-14
|
||||
AMatbld3d_stor: *****Zero Negative Coefficients ******
|
||||
AMatbld3d_stor: Number of 'zero' (< compress_eps) coefs 0
|
||||
AMatbld3d_stor: npoints = 115547 ncoefs = 964637
|
||||
AMatbld3d_stor: Number of unique coefs = 313
|
||||
AMatbld3d_stor: Maximum num. connections to a node = 25
|
||||
AMatbld3d_stor: Volume min = 7.4999999E+02
|
||||
AMatbld3d_stor: Volume max = 7.6800000E+05
|
||||
AMatbld3d_stor: Total Volume: 2.3846400E+10
|
||||
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
|
||||
AMatbld3d_stor: abs(Aij/xij) max = 1.3500000E+02
|
||||
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
|
||||
AMatbld3d_stor: (Aij/xij) min = -1.3500000E+02
|
||||
AMatbld3d_stor Matrix coefficient values stored as scalar area/distance
|
||||
AMatbld3d_stor Matrix compression used for graph and coefficient values
|
||||
ascii STOR file written with name mesh.stor
|
||||
```
|
||||
|
||||
Visually inspect the mesh for the assignment of boundary zones such as top nodes.
|
||||
|
||||
<!-- Lightbox -->
|
||||
<div class="uk-child-width-1-2@m" uk-grid uk-lightbox="animation: slide">
|
||||
<div>
|
||||
<a class="uk-inline" href="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_node_zone_top.png" | relative_url }}" data-caption="GMV visualization of mesh nodes, with top nodes colored red">
|
||||
<img src="{{ "/pages/tutorial/stratigraphy/images/21_tet_01_fehm_node_zone_top.png" | relative_url }}" alt="">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Next / Prev -->
|
||||
<ul class="uk-pagination">
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}"><span class="uk-margin-small-right" uk-pagination-previous></span> Previous</a></li>
|
||||
<li class="uk-margin-auto-left"><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">Next <span class="uk-margin-small-left" uk-pagination-next></span></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div class="tm-sidebar-right uk-visible@l">
|
||||
<div uk-sticky="offset: 160" class="uk-sticky uk-active uk-sticky-fixed" style="position: fixed; top: 160px; width: 200px;">
|
||||
<ul uk-scrollspy-nav="closest: li; scroll: true; offset: 100" class="uk-nav uk-nav-default tm-nav uk-nav-parent-icon">
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/index.html" | relative_url }}">Index</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_01.html" | relative_url }}">1. Building a Hex Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_02.html" | relative_url }}">2. Define Boundaries Using Point Sets</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_03.html" | relative_url }}">3. Constructing Stratigraphy</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_04.html" | relative_url }}">4. Map Surfaces to Mesh</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_05.html" | relative_url }}">5. Constructing a Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_06.html" | relative_url }}">6. Truncate with Polyline</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_07.html" | relative_url }}">7. Refine Fault</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_08.html" | relative_url }}">8. Insert Wells</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_09.html" | relative_url }}">9. Convert Hex Mesh to Tet</a></li>
|
||||
<li class="uk-active"><a href="#dump-fehm">10.1 Write FEHM Files</a></li>
|
||||
<li class=""><a href="{{ "/pages/tutorial/stratigraphy/step_10_exo.html" | relative_url }}">10.2 Write ExodusII Files</a></li>
|
||||
<li class="uk-nav-divider"></li>
|
||||
<!---->
|
||||
<li><a href="{{ "/pages/tutorial/stratigraphy/images/gallery.html" | relative_url }}" target="_blank"><span uk-icon="icon: image" class="uk-margin-small-right uk-icon"></span> <span class="uk-text-middle">Image Gallery</span></a></li>
|
||||
<li><a href="https://github.com/lanl/LaGriT/issues" target="_blank"><span uk-icon="icon: warning" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="warning"><circle cx="10" cy="14" r="1"></circle><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle><path d="M10.97,7.72 C10.85,9.54 10.56,11.29 10.56,11.29 C10.51,11.87 10.27,12 9.99,12 C9.69,12 9.49,11.87 9.43,11.29 C9.43,11.29 9.16,9.54 9.03,7.72 C8.96,6.54 9.03,6 9.03,6 C9.03,5.45 9.46,5.02 9.99,5 C10.53,5.01 10.97,5.44 10.97,6 C10.97,6 11.04,6.54 10.97,7.72 L10.97,7.72 Z"></path></svg></span> <span class="uk-text-middle">Report issue</span></a></li>
|
||||
<li><a href="mailto:lagrit-dev@lanl.gov" target="_blank"><span uk-icon="icon: commenting" class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" data-svg="commenting"><polygon fill="none" stroke="#000" points="1.5,1.5 18.5,1.5 18.5,13.5 10.5,13.5 6.5,17.5 6.5,13.5 1.5,13.5"></polygon><circle cx="10" cy="8" r="1"></circle><circle cx="6" cy="8" r="1"></circle><circle cx="14" cy="8" r="1"></circle></svg></span> <span class="uk-text-middle">Get help</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||