391 lines
16 KiB
HTML
391 lines
16 KiB
HTML
|
|
<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">
|
|||
|
|
|
|||
|
|
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow2.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20EDGE:) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow3.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshFace.md) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow4.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshVertex.md)</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p> <strong>MESH EDGES:</strong></p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p>Since LaGriT does not really store mesh edges, the mesh edge data</p>
|
|||
|
|
|
|||
|
|
<p>structure (<em>MeshEdge</em>, <em>PMeshEdge</em>) is created on the fly whenever edge</p>
|
|||
|
|
|
|||
|
|
<p>information is requested. Therefore after utilizing the edge(s) get</p>
|
|||
|
|
|
|||
|
|
<p>information, it (they) should be destroyed by calling ME_Delete</p>
|
|||
|
|
|
|||
|
|
<p>operator.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>int</em> <strong>ME_Number</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
|
|||
|
|
|
|||
|
|
<p>*</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>This will return 0 for now since I haven’t yet decided on a good</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<p>*</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>way to assign a unique number to the (virtual) edges of the mesh.</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>void</em> <strong>ME_Delete</strong>(<em>PMeshEdge</em> e);</p>
|
|||
|
|
|
|||
|
|
<p>Free the data structure associated with this edge created on the fly.</p>
|
|||
|
|
|
|||
|
|
<p>(There is an operator for creation but I cannot yet imagine needing to</p>
|
|||
|
|
|
|||
|
|
<p>make that a publicly available operator).</p>
|
|||
|
|
|
|||
|
|
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif" />“27” “31”
|
|||
|
|
*</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>IMPORTANT
|
|||
|
|
*
|
|||
|
|
*</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<p>ME_Delete will not remove any connections in the mesh. It just destroys
|
|||
|
|
the</p>
|
|||
|
|
|
|||
|
|
<p>temporary data structure used to store the edge info</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>int</em> <strong>ME_IsParent</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe);</p>
|
|||
|
|
|
|||
|
|
<p>If both vertices of the edge are parents, the edge is a parent.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>PMeshEdge</em> <strong>ME_Parent</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe);</p>
|
|||
|
|
|
|||
|
|
<p>The parents of each vertex of the edge are obtained and a new ‘parent’</p>
|
|||
|
|
|
|||
|
|
<p>edge is constructed from them.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>void</em> <strong>ME_Children</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe, <em>int</em>
|
|||
|
|
<em>nec,
|
|||
|
|
*PMeshEdge</em>
|
|||
|
|
*
|
|||
|
|
*ec);</p>
|
|||
|
|
|
|||
|
|
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/note1.gif" />“31” “32”
|
|||
|
|
*
|
|||
|
|
*</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>NOT YET
|
|||
|
|
IMPLEMENTED
|
|||
|
|
*
|
|||
|
|
*
|
|||
|
|
*</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<p>Child vertices of the face are found and appropriate combinations of
|
|||
|
|
these vertices are used to construct the new ‘child’ faces. For a
|
|||
|
|
combination to be appropriate, the vertices of the child face has to
|
|||
|
|
point to the same material region.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>int</em> <strong>MEs_areSame</strong>(<em>PMeshEdge</em> e1, <em>PMeshEdge</em> e2);</p>
|
|||
|
|
|
|||
|
|
<p>Compare the data in two MeshEdge data structures and see if they</p>
|
|||
|
|
|
|||
|
|
<p>represent the same connection in the mesh. This operator is needed</p>
|
|||
|
|
|
|||
|
|
<p>since the on-the-fly <em>PMeshEdge</em> pointers may not be the same and they</p>
|
|||
|
|
|
|||
|
|
<p>do not directly point to any persistent “object” in the database.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>PGeomEntity</em> <strong>ME_GMentity</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
|
|||
|
|
|
|||
|
|
<p>Return the geometric model entity the edge is on. In the absence of
|
|||
|
|
explicit</p>
|
|||
|
|
|
|||
|
|
<p>edge representation in the database, this may be problematic in a few
|
|||
|
|
cases</p>
|
|||
|
|
|
|||
|
|
<p>cases where multiple classifications are possible.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>GType</em> <strong>ME_GMtype</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e);</p>
|
|||
|
|
|
|||
|
|
<p>Return the type of geometric model entity the edge is on. This (I</p>
|
|||
|
|
|
|||
|
|
<p>think) is more deterministically found from the classifications of its</p>
|
|||
|
|
|
|||
|
|
<p>vertices but still there may be some incorrect cases. The way around</p>
|
|||
|
|
|
|||
|
|
<p>is complicated and will not be implemented for now.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>PMeshVert</em> <strong>ME_Vertex</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em> i);</p>
|
|||
|
|
|
|||
|
|
<p>Return the i’th vertex of the mesh edge. i can only be 0 or 1.</p>
|
|||
|
|
|
|||
|
|
<p>Parent edges return parent vertices and child edges return child
|
|||
|
|
vertices.</p>
|
|||
|
|
|
|||
|
|
<p>If a vertex is not on an interface the vertex itself is returned.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/new1.gif" />“31” “12”<em>PMeshVert</em>
|
|||
|
|
<strong>ME_OtherVertex</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>PMeshVert</em> v);</p>
|
|||
|
|
|
|||
|
|
<p>Return the other vertex of the mesh edge (obviously the one that is not
|
|||
|
|
v).</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>void</em> <strong>ME_Faces</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em>
|
|||
|
|
<em>nef,
|
|||
|
|
*PMeshFace</em>
|
|||
|
|
*
|
|||
|
|
*efaces);</p>
|
|||
|
|
|
|||
|
|
<p>Get the “faces” of an “edge”. The faces data structures are also</p>
|
|||
|
|
|
|||
|
|
<p>constructed on the fly since they do not exist in the LaGriT</p>
|
|||
|
|
|
|||
|
|
<p>database. Also, as with other upward connectivity queries, this can</p>
|
|||
|
|
|
|||
|
|
<p>execute usefully only if the routine MESH_BldUpAdj is called</p>
|
|||
|
|
|
|||
|
|
<p>beforehand. Also, see note on freeing the <em>PMeshFace</em> structures listed</p>
|
|||
|
|
|
|||
|
|
<p>under MV_Edges and MV_Faces.</p>
|
|||
|
|
|
|||
|
|
<p>The behavior of this operator for parent and child edges is similar to</p>
|
|||
|
|
|
|||
|
|
<p>MV_Edges.</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>void</em> <strong>ME_Regions</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> e, <em>int</em>
|
|||
|
|
<em>ner,
|
|||
|
|
*PMeshRegn</em>
|
|||
|
|
*
|
|||
|
|
*eregions);</p>
|
|||
|
|
|
|||
|
|
<p>Get the regions connected to an edge. MESH_BldUpAdj must be called
|
|||
|
|
before this operator can be called usefully.</p>
|
|||
|
|
|
|||
|
|
<p>The behavior of this operator for child and parent edges is similar to</p>
|
|||
|
|
|
|||
|
|
<p>that of MV_Regions.</p>
|
|||
|
|
|
|||
|
|
<p><img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/bullet12.gif" />“27” “31”
|
|||
|
|
*</p>
|
|||
|
|
<ul>
|
|||
|
|
<li>IMPORTANT
|
|||
|
|
*
|
|||
|
|
*</li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
<p>Since MESH_BldUpAdj builds explicit upward adjacency information, this</p>
|
|||
|
|
|
|||
|
|
<p>routine does not require a seed region to be provided. Also, this</p>
|
|||
|
|
|
|||
|
|
<p>routine will work regardless of whether there is a complete cycle of</p>
|
|||
|
|
|
|||
|
|
<p>regions around the edge and whether the edge is an arbitrary type of</p>
|
|||
|
|
|
|||
|
|
<p>non-manifold edge!!</p>
|
|||
|
|
|
|||
|
|
<hr />
|
|||
|
|
|
|||
|
|
<p><em>int</em> <strong>ME_EntOnBdry</strong>(<em>PMeshObj</em> mesh, <em>PMeshEdge</em> pe, <em>PMeshVert</em>e
|
|||
|
|
pv);</p>
|
|||
|
|
|
|||
|
|
<p>Check if vertex is on the boundary of edge. In other words, is this</p>
|
|||
|
|
|
|||
|
|
<p>vertex one of the edges vertices.</p>
|
|||
|
|
|
|||
|
|
<p> </p>
|
|||
|
|
|
|||
|
|
<p>
|
|||
|
|
<img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow2.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/mstkla.md#MESH%20EDGE:) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow3.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshFace.md) <img height="300" width="300" src="https://lanl.github.io/LaGriT/assets/images/arrow4.gif" />“30”
|
|||
|
|
“30”](http://www.ees.lanl.gov/staff/rao/mstkla/MeshVertex.md)</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>
|