Files
2025-12-17 11:00:57 +08:00

341 lines
19 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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 &amp; 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 doesnt
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>&copy; 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>