initial upload

This commit is contained in:
2025-12-17 11:00:57 +08:00
parent 2bc7b24a71
commit a09a73537f
4614 changed files with 3478433 additions and 2 deletions

View File

@@ -0,0 +1,87 @@
---
title: Tutorial LaGriT Introduction
---
# Tutorial - LaGriT Introduction
<div class="button" id="button-3">
<div id="circle"></div>
<a href="{{ "/pages/tutorial/lagrit_introduction/" | relative_url }}">Tutorial on GitHub</a>
</div>
## Running LaGriT
LaGriT consists of mesh **commands** and options that are used to create, modify, optimize, and write files. LaGriT can be run on the command line interactively, so commands are entered one at a time at the prompt, or with one or more files containing the LaGriT commands. By convention we use ".lgi" for lagrit input file names and ".mlgi" for macro files called from main command file.
Run LaGriT from the command line interactively or put commands in a file and redirect.
```
lagrit
```
or
```
lagrit < input.lgi
```
**Important Note:** the **`finish`** command must be used to exit interactive session and must be at end of command file.
## LaGriT Syntax Conventions
LaGriT reads commands and command options from each line at prompt or each line in a file. Each line starts with a **command** followed by command options. Syntax is very important and the [commands](https://lanl.github.io/LaGriT/pages/commands.html) reference pages should be followed, or errors may occur. The following conventions apply:
- Lines are a maximum of 80 characters long, identifiers and file names are a maximum of 32 characters long.
- A line can be continued by an “&” as the last character of a line to be wrapped.
- Command and token separators are comma, slash, or blank. (, / ).
- White space is ignored except between slashes with empty space indicating default for that option should be used.
- LaGriT will ignore lines that start with comment indicators '*' or '#'.
See more at [Syntax Conventions](https://lanl.github.io/LaGriT/pages/docs/conventions.html)
## General Meshing Definitions
- **Mesh = Grid** = elements defining geometric shapes allowing numerical computations for simulations
- **Node = Vertex** = point = mesh object nodes that can be used to connect into elements.
- **Element = cell** = nodes are connected into element types such as line, triangle, or tetrahedral (see page)
- **Structured mesh** = a mesh whose connectivity (topology) can be defined implicitly, and cell neighbors are predictable. Generally, a quadrilateral mesh in 2D and hexahedral mesh in 3D.
- **Unstructured mesh** = a mesh that requires explicit connectivity information to describe cell topology. Generally used to represent complex shapes.
- **Delaunay Triangulation** = a Delaunay mesh (triangles in 2D, tetrahedra in 3D) has cells such that the circumcircle(2D)/circumsphere(3D) contains no vertices other than the cell vertices. A Delaunay triangulation maximizes the minimum interior angle.
- **Voronoi Tessellation** = the dual of a Delaunay triangulation, meaning that the vertices of one correspond to the cells of the other, and the edges of one correspond to the edges of the other.
- Defined as ```V(pi) = {x | d(x, pi) ≤ d(x, pj) for all pj ∈ S, j ≠ i}```
- The Voronoi cell V(pi) contains all points x that are "closest" to the site pi.
- "Closeness" is determined by the distance function d(x, p).
- The inequality d(x, pi) ≤ d(x, pj) ensures that x is closer to pi than to any other site pj.
- **Control volume (CV) method** = in context of computational hydrology, the discretization method used by physics codes such as FEHM and PFLOTRAN for solving multiphase flow of fluid and energy (heat) in porous media. The CV method guarantees conservation of mass and heat.
## LaGriT Meshing Definitions
- **Current Mesh Object = mo** = is the mesh data structure used in LaGriT.
- **imt** = integer material type = default name for vertex array with positive integer values indicating material ID or color.
- **itetclr** = integer tet color = default name for cell array with positive integer values indicating material ID or color (legacy name convention)
- **itp** = integer type = vertex integer tag indicating type such as interior, exterior, interior boundary, or exterior boundary.
- **geometry** = is created with surface and region commands and is used to set mesh material values.
- **LaGriT (.lgi and .mlgi)** = LaGriT command files suffix where .mlgi is a macro called from main command files. (Optional suffix convention)
- **AVS (.inp)** = Advanced Visual Systems ascii file format for mesh information (vertex coordinates, cell connectivity, vertex attributes, cell attributes) recognized by most VIS applications. LaGriT can read and write AVS files.
- **Exodus II (.exo)** = Binary mesh file format built on NetCDF data storage structures used for Amanzi/ATS and recognized by most VIS applications. LaGriT can write Exodus II files but does not read Exodus II files.
## LaGriT Basics Tutorial
This tutorial shows how to use LaGriT commands to create a simple structured multi-material mesh and files for simulations. This workflow starts with a hexahedral mesh which is connected into a Delaunay tetrahedral mesh. Materials are assigned to the cells and vertices using surfaces. The final step writes files used for simulations such as FEHM.
You do not need to run LaGriT as the example output files are included in this tutorial. But new users will benefit from running the examples and making modifications to better understand results of different commands and their options. Paraview is used to create the images in this tutorial and can read any of the AVS *.inp files.
## [Step 1. Create a Hex Mesh](step_01.md)
## [Step 2. Convert Hex Mesh to Tet Mesh](step_02.md)
## [Step 3. Assign materials to the Mesh](step_03.md)
## [Step 4. Write Mesh and FEHM Setup Files](step_04.md)
## Final Word
Meshing with LaGriT is not automatic and methods can be complex. But LaGriT tools provide a robust variety of meshing tools with capabilities specific to geologic applications and Voronoi control volume solvers. For some modeling applications, the LaGriT workflow can be generalized and easier to use. Applications using LaGriT for meshing include dfnWorks and Tinerator, both on GitHub and available for download. We hope this Tutorial provides insight into LaGriT and how it may solve your meshing needs.

View File

@@ -0,0 +1,154 @@
---
title: Tutorial LaGriT Introduction Step 01
---
# Step 1. Build a Hex Mesh
<!-- Begin image -->
<p><a href="step_01/01_hex_mesh.png"> <img width="500" src="step_01/01_hex_mesh.png" /> </a></p>
<br>
<!-- End image -->
#### LaGriT command file: [01_create_hex.lgi](step_01/01_create_hex.lgi.txt)
#### LaGriT output file: [lagrit.out](step_01/01_create_hex.out.txt)
#### LaGriT all run files: [Folder step_01](https://github.com/lanl/LaGriT/tree/master/docs/pages/tutorial/lagrit_introduction/step_01)
## Create a Mesh Object
A mesh object can be created by reading a mesh, ie ```read/avs/mesh.inp/ 3dmesh```
or the mesh can be created. For this example, we will start with one of the [`createpts`](../../docs/commands/createpts.md) commands. These are used to add points to a mesh object with defined distributions.
For your first command you will create a 3D mesh object and name it `3dmesh`. This will be a structured hex mesh, so we add the element type to the end of the command syntax.
See more on the Mesh Object data structure at [LaGriT Mesh Object](https://lanl.github.io/LaGriT/pages/docs/meshobject.html)
*Note on spacing: the slashes separate keywords. The slashes with empty spaces are place holders if the user wants to define npoints or nelements in the command. We do not define these here since these values will be updated in the mesh object as points are created.*
```
cmo / create / 3dmesh / / / hex
```
View the contents of this empty mesh object. Note the mesh attributes nnodes and nelements is currently 0. LaGriT book-keeping routines will update the mesh object as it is modified.
```
cmo/status/3dmesh
```
*Note: the command **cmo/select/3dmesh** can be added here, but not necessary because there is only one mesh. Also, the **create** command makes the created mesh the current mesh.*
## Create Points for Hex Mesh
We will use one of the simple **`createpts`** commands, this version will create a structured rectangular mesh. Checking the syntax for [createpts/brick/](https://lanl.github.io/LaGriT/pages/docs/commands/createpts/CRTPTBRICK.html) we see options that can be defined as variables, making them easy to change.
In LaGriT, variables are assigned using the `define` keyword. We define the variables before the commands. It is good practice to locate these all together with comments at the top of the command file. You can also use the **define** command multiple times, the last will overwrite previous values. This is an easy way to keep track of resolutions as you try them.
```
# Mesh domain 100x50x80
define / XMIN / 0.
define / XMAX / 100.
define / YMIN / 0.
define / YMAX / 50.
define / ZMIN / 0.
define / ZMAX / 80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define / NX / 11
define / NY / 6
# try 10 meter spacing with 9 nodes first
# overwrite and use 5 meter spacing with 17 nodes
define / NZ / 9
define / NZ / 17
```
Above, the spatial domain (MIN and MAX values) and node density (`NX/NY/NZ`) have been defined.
Now we can use the define values to add points to the mesh object.
The [`createpts / brick`](../../docs/commands/createpts/CRTPTBRICK.md) command will generate a defined number of
hex elements across a defined domain.
`NX` number of hex elements, along with their corresponding vertices, will be created in the spatial domain along the X axis, with `NY` elements in the Y domain and `NZ` elements in the Z domain.
```
createpts/brick/xyz/ NX NY NZ / XMIN YMIN ZMIN/ XMAX YMAX ZMAX / 1,1,1
```
As shown in the screen report, **`createpts/brick`** creates 1122 hex points and 800 hex elements. The connect option should not be used for the **brick** option because the hex connectivity is created automatically.
## Set Materials and Boundary Tags
It is good practice to set materials for nodes (imt) and elements (itetlcr) to 1 before continuing. A 0 value in these arrays will cause some viewers to ignore that point or element. These attributes must be positive non-zero integers.
*Note 1,0,0 represents all for node start,stride,end*
```
cmo / setatt / 3dmesh / imt / 1,0,0 / 1
cmo / setatt / 3dmesh / itetclr / 1,0,0 / 1
```
It is also good practice to reset the itp attribute anytime materials are changed. This attribute indicates which nodes are on the boundary and which are internal and is used in many of the meshing routines.
```
resetpts/itp
```
## Check the Mesh
View the Mesh Object status, brief version. This report affirms the creation of a 3D hex mesh. The **brief** option shows the cmo header without all the attributes.
```
cmo/status/ 3dmesh / brief
```
View the min max values of the mesh attributes of the coordinates as another check.
The keyword -all- or -xyz- can be used to view mesh object attributes.
```
cmo/printatt/3dmesh/ -xyz- minmax
```
Check the mesh with the **`quality`** command. There should be no negative or zero volumes.
```
quality
```
## Write the Mesh and View
Write an AVS format mesh file for viewing the mesh.
This file can be rendered in certain scientific 3D visualization applications such as Paraview.
Viewing this mesh, you should see something like the image at the top of the page.
By default, Paraview will color the mesh by imt values which are all equal to 1.
View the mesh using the node attribute itp to see the boundary nodes. The outside nodes will have value of 10 and internal nodes will have value 0. Note when viewing a mesh colored by a node, the colors will "bleed" from one node to the next. Views colored by cell or element will be more distinct.
Image shows hex mesh with node itp colors. The mesh is clipped in half to see the inside nodes of the mesh.
<p><a href="step_01/01_hex_mesh_itp.png"> <img width="300" src="step_01/01_hex_mesh_itp.png" /> </a></p>
```
dump/ avs / 01_hex_mesh.inp / 3dmesh
```
## finish
Always end a session or a file with the **finish** command and a line return after the finish command. The command line parser will not parse a command without a line return.
```
finish
```
#### [LaGriT Introduction Index](index.html)
#### [Step 1. Create a Hex Mesh](step_01.html)
#### [Step 2. Convert Hex Mesh to Tet Mesh](step_02.html)
#### [Step 3. Assign materials to the Mesh](step_03.html)
#### [Step 4. Write Mesh and FEHM Setup Files](step_04.html)

View File

@@ -0,0 +1,56 @@
# Tutorial LaGriT Introduction
# Step 1. Build a Hex Mesh
# Create an empty hex mesh object called 3dmesh
cmo / create / 3dmesh / / / hex
# View the mesh object attributes
cmo / status / 3dmesh
# Define parameters that will be used to create a mesh.
# Values used will be the last written
# Mesh domain 100x50x80
define / XMIN / 0.
define / XMAX / 100.
define / YMIN / 0.
define / YMAX / 50.
define / ZMIN / 0.
define / ZMAX / 80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define / NX / 11
define / NY / 6
define / NZ / 9
define / NZ / 17
# Create points and connect into a hex mesh
createpts/brick/xyz/ NX NY NZ / XMIN YMIN ZMIN/ XMAX YMAX ZMAX / 1,1,1
# Set materials for nodes (imt) and elements (itetlcr) to 1
# This is good practice and avoids 0 values in these atttributes
# Note 1,0,0 represents all for node start,stride,end
cmo / setatt / 3dmesh / imt / 1,0,0 / 1
cmo / setatt / 3dmesh / itetclr / 1,0,0 / 1
# Set node boundary flags in the itp attribute
# This is good practice and can be called anytime to update this array
resetpts/itp
# View Mesh Object status, brief version
cmo/status/ 3dmesh / brief
# Report the min max values of the mesh attributes
# keyword -all- or -xyz- can be used
cmo/printatt/3dmesh/ -xyz- minmax
# Check mesh with quality command
# There should be no negative or zero volumes
quality
# Write an AVS format mesh file for viewing
dump/ avs / 01_hex_mesh.inp / 3dmesh
# END of command file
finish

View File

@@ -0,0 +1,56 @@
# Tutorial Example 1
#
# Create an empty hex mesh object called 3dmesh
cmo / create / 3dmesh / / / hex
# View the mesh object attributes
cmo / status / 3dmesh
# Define parameters that will be used to create a mesh.
# Values used will be the last written
# Mesh domain 100x50x80
define / XMIN / 0.
define / XMAX / 100.
define / YMIN / 0.
define / YMAX / 50.
define / ZMIN / 0.
define / ZMAX / 80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define / NX / 11
define / NY / 6
define / NZ / 9
define / NZ / 17
# Create points and connect into a hex mesh
createpts/brick/xyz/ NX NY NZ / XMIN YMIN ZMIN/ XMAX YMAX ZMAX / 1,1,1
# Set materials for nodes (imt) and elements (itetlcr) to 1
# This is good practice and avoids 0 values in these atttributes
# Note 1,0,0 represents all for node start,stride,end
cmo / setatt / 3dmesh / imt / 1,0,0 / 1
cmo / setatt / 3dmesh / itetclr / 1,0,0 / 1
# Set node boundary flags in the itp attribute
# This is good practice and can be called anytime to update this array
resetpts/itp
# View Mesh Object status, brief version
cmo/status/ 3dmesh / brief
# Report the min max values of the mesh attributes
# keyword -all- or -xyz- can be used
cmo/printatt/3dmesh/ -xyz- minmax
# Check mesh with quality command
# There should be no negative or zero volumes
quality
# Write an AVS format mesh file for viewing
dump/ avs / 01_hex_mesh.inp / 3dmesh
# END of command file
finish

View File

@@ -0,0 +1,21 @@
cmo/create/3dmesh///hex
cmo/status/3dmesh
define/XMIN/0.
define/XMAX/100.
define/YMIN/0.
define/YMAX/50.
define/ZMIN/0.
define/ZMAX/80.
define/NX/11
define/NY/6
define/NZ/9
define/NZ/17
createpts/brick/xyz/NX NY NZ/XMIN YMIN ZMIN/XMAX YMAX ZMAX/1,1,1
cmo/setatt/3dmesh/imt/1,0,0/1
cmo/setatt/3dmesh/itetclr/1,0,0/1
resetpts/itp
cmo/status/3dmesh/brief
cmo/printatt/3dmesh/-xyz- minmax
quality
dump/avs/01_hex_mesh.inp/3dmesh
finish

View File

@@ -0,0 +1,197 @@
* * * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * Program: LaGriT V3.3.4 Linux *
* * Compiler Name: GNU *
* * Compiler Version: 9.4.0 *
* * Date Compile: 2024/05/06 *
* * Run Time: 2025/Jan 16 16:17:30 *
* * Manual: https://lagrit.lanl.gov *
* * *
* * * * * * * * * * * * * * * * * * * * * * * * *
-----oOo-----
LaGriT V3 LA-CC-15-069 https://github.com/lanl/LaGriT
Copyright 2016. Triad National Security, LLC. All rights reserved. This
program was produced under U.S. Government contract 89233218CNA000001
for Los Alamos National Laboratory (LANL), which is operated by Triad
National Security, LLC for the U.S. Department of Energy/National Nuclear
Security Administration. All rights in the program are reserved by Triad
National Security, LLC, and the U.S. Department of Energy/National Nuclear
Security Administration. The Government is granted for itself and others
acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license
in this material to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit others to
do so. This software is open source and available under the BSD-3 License.
-----oOo-----
Output log file: lagrit.out
Command log file: lagrit.log
# Tutorial Example 1
#
# Create an empty hex mesh object called 3dmesh
cmo/create/3dmesh///hex
# View the mesh object attributes
cmo/status/3dmesh
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 0 number of elements = 0
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
NAME TYPE RANK LENGTH INTER PERSI IO VALUE
1 -def- VDOU scalar nnodes linea tempo agl 0.000E+00
2 scalar INT scalar scalar const perma l 1.000E+00
3 vector INT scalar scalar const perma l 3.000E+00
4 nnodes INT scalar scalar const perma l 0.000E+00
5 nedges INT scalar scalar const perma l 0.000E+00
6 nfaces INT scalar scalar const perma l 0.000E+00
7 nelements INT scalar scalar const perma l 0.000E+00
8 mbndry INT scalar scalar const perma l 1.600E+07
9 ndimensions_top INT scalar scalar const perma l 3.000E+00
10 ndimensions_geo INT scalar scalar const perma l 3.000E+00
11 nodes_per_eleme INT scalar scalar const perma l 8.000E+00
12 edges_per_eleme INT scalar scalar const perma l 1.200E+01
13 faces_per_eleme INT scalar scalar const perma l 6.000E+00
14 isetwd VDOU scalar nnodes or perma l 0.000E+00
15 ialias VINT scalar nnodes seque perma l 0.000E+00
16 imt1 VINT scalar nnodes max perma gal 0.000E+00
17 itp1 VINT scalar nnodes min perma gal 0.000E+00
18 icr1 VINT scalar nnodes min perma gal 0.000E+00
19 isn1 VINT scalar nnodes user perma gal 0.000E+00
20 xic VDOU scalar nnodes linea perma l 0.000E+00
21 yic VDOU scalar nnodes linea perma l 0.000E+00
22 zic VDOU scalar nnodes linea perma l 0.000E+00
23 xtetwd VDOU scalar nelements or perma l 0.000E+00
24 itetclr VINT scalar nelements user perma l 0.000E+00
25 itettyp VINT scalar nelements user perma l 0.000E+00
26 itetoff VINT scalar nelements user perma l 0.000E+00
27 jtetoff VINT scalar nelements user perma l 0.000E+00
28 itet VINT nodes_per_ nelements user perma l 0.000E+00
29 jtet VINT faces_per_ nelements user perma l 0.000E+00
30 ipolydat CHAR scalar scalar const perma l no
31 vor2d CHAR scalar scalar const perma l yes
32 vor3d CHAR scalar scalar const perma l no
33 epsilon REAL scalar scalar const perma l 1.000E-15
34 epsilonl REAL scalar scalar const perma l 1.000E-08
35 epsilona REAL scalar scalar const perma l 1.000E-08
36 epsilonv REAL scalar scalar const perma l 1.000E-08
37 ipointi INT scalar scalar const perma l 0.000E+00
38 ipointj INT scalar scalar const perma l 0.000E+00
39 idebug INT scalar scalar const perma l 0.000E+00
40 itypconv_sm INT scalar scalar const perma l 1.000E+00
41 maxiter_sm INT scalar scalar const perma l 2.500E+01
42 tolconv_sm REAL scalar scalar const perma l 1.000E+00
43 nnfreq INT scalar scalar const perma l 1.000E+00
44 ivoronoi INT scalar scalar const perma l 1.000E+00
45 iopt2to2 INT scalar scalar const perma l 2.000E+00
46 dumptype CHAR scalar scalar const perma l binary
47 velname CHAR scalar scalar const perma l vels
48 densname CHAR scalar scalar const perma l ric
49 presname CHAR scalar scalar const perma l pic
50 enername CHAR scalar scalar const perma l eic
51 xmin REAL scalar scalar const perma l -1.000E+00
52 ymin REAL scalar scalar const perma l -1.000E+00
53 zmin REAL scalar scalar const perma l -1.000E+00
54 xmax REAL scalar scalar const perma l 1.000E+00
55 ymax REAL scalar scalar const perma l 1.000E+00
56 zmax REAL scalar scalar const perma l 1.000E+00
57 kdtree_level INT scalar scalar const perma l 0.000E+00
58 max_number_sets INT scalar scalar const perma l 6.400E+01
59 number_of_psets INT scalar scalar const perma l 0.000E+00
60 number_of_eltse INT scalar scalar const perma l 0.000E+00
61 psetnames VCHA scalar max_number_sets const perma l
62 eltsetnames VCHA scalar max_number_sets const perma l
63 geom_name CHAR scalar max_number_sets const perma l -defaultge
64 fsetnames VCHA scalar max_number_sets const perma l
65 number_of_fsets INT scalar scalar const perma l 0.000E+00
# Define parameters that will be used to create a mesh.
# Values used will be the last written
# Mesh domain 100x50x80
define/XMIN/0.
define/XMAX/100.
define/YMIN/0.
define/YMAX/50.
define/ZMIN/0.
define/ZMAX/80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define/NX/11
define/NY/6
define/NZ/9
define/NZ/17
# Create points and connect into a hex mesh
createpts/brick/xyz/NX NY NZ/XMIN YMIN ZMIN/XMAX YMAX ZMAX/1,1,1
Number of nodes: 1122
Number of elements: 800
Number of negative volume elements: 0
Total volume: 0.400000000000E+06
# Set materials for nodes (imt) and elements (itetlcr) to 1
# This is good practice and avoids 0 values in these atttributes
# Note 1,0,0 represents all for node start,stride,end
cmo/setatt/3dmesh/imt/1,0,0/1
1122 values reset for attribute imt1
cmo/setatt/3dmesh/itetclr/1,0,0/1
800 values reset for attribute itetclr
# Set node boundary flags in the itp attribute
# This is good practice and can be called anytime to update this array
resetpts/itp
geniee
finish
# View Mesh Object status, brief version
cmo/status/3dmesh/brief
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
# Report the min max values of the mesh attributes
# keyword -all- or -xyz- can be used
cmo/printatt/3dmesh/-xyz- minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
xic 0.000000000E+00 1.000000000E+02 1.000000000E+02 1122
yic 0.000000000E+00 5.000000000E+01 5.000000000E+01 1122
zic 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
# Check mesh with quality command
# There should be no negative or zero volumes
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 0
elements with aspect ratio b/w .5 and 1. : 800
min aspect ratio = 0.1000E+01 max aspect ratio = 0.1000E+01
epsilonvol: 8.8817842E-08
---------------------------------------
All elements have volume 5.0000000E+02
-----------------------------------------------------------
800 total elements evaluated.
# Write an AVS format mesh file for viewing
dump/avs/01_hex_mesh.inp/3dmesh
cmo/modatt/-def-/-def-/ioflag/x
finish
# END of command file
finish
LaGriT successfully completed

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 KiB

View File

@@ -0,0 +1,21 @@
cmo/create/3dmesh///hex
cmo/status/3dmesh
define/XMIN/0.
define/XMAX/100.
define/YMIN/0.
define/YMAX/50.
define/ZMIN/0.
define/ZMAX/80.
define/NX/11
define/NY/6
define/NZ/9
define/NZ/17
createpts/brick/xyz/NX NY NZ/XMIN YMIN ZMIN/XMAX YMAX ZMAX/1,1,1
cmo/setatt/3dmesh/imt/1,0,0/1
cmo/setatt/3dmesh/itetclr/1,0,0/1
resetpts/itp
cmo/status/3dmesh/brief
cmo/printatt/3dmesh/-xyz- minmax
quality
dump/avs/01_hex_mesh.inp/3dmesh
finish

View File

@@ -0,0 +1,306 @@
---
title: Tutorial LaGriT Introduction Step 02
---
# Step 2. Create Tet Mesh from the Hex Mesh
<!-- Begin image -->
<p><a href="step_02/02_hextotet.png"> <img width="500" src="step_02/02_hextotet.png"> </a></p>
<!-- End image -->
#### LaGriT command file: [02_hex_to_tet.lgi](step_02/02_hex_to_tet.lgi.txt)
#### LaGriT output file: [lagrit.out](step_02/02_hex_to_tet.out.txt)
#### LaGriT all run files: [Folder step_02](https://github.com/lanl/LaGriT/tree/master/docs/pages/tutorial/lagrit_introduction/step_02)
This example will use 2 methods for creating a tet mesh from a hex mesh.
- Method 1 will use the mesh points to [**'connect'**](https://lanl.github.io/LaGriT/pages/docs/commands/CONNECT1.html) into a Delaunay tet mesh.
- Method 2 will use [**'grid2grid'**](https://lanl.github.io/LaGriT/pages/docs/commands/GRID2GRID.html) to convert hex elements into tetrahedrals.
Use of **hextotet** (or **grid2grid**) to convert a 3D mesh to a tetrahedral mesh may result in a non-Delaunay tetrahedral mesh. If the target simulator is one that uses two-point flux approximation and Voronoi control volumes (FEHM, PFLOTRAN, TOUGH2) then the **connect** command should be used to create a Delaunay mesh.
[Click here for Delaunay Definition](https://en.wikipedia.org/wiki/Delaunay_triangulation)
[Click here for Voronoi Definition](https://en.wikipedia.org/wiki/Voronoi_diagram)
[Click here for more details on the connect algorithm](https://lanl.github.io/LaGriT/pages/docs/connect_notes.html)
# Method 1 using Connect Delaunay
The Delaunay algorithm is applied to a set of points. In this example we will use the nodes from the hex mesh in Step 1. The point distribution will impact the success of a connected tet mesh. A point distribution where spacing varies from very small to very large can result in high aspect ratios and boundary problems. This hex mesh provides structured regular spacing and is topologically consistent and will result in a successful Delaunay connection.
## Create the Hex Mesh from Step 1
The **'infile'** command is used to read and run a LaGriT command file. In this case we read and run the same command file that was used to create a hex mesh in Step 1.
Use the **'cmo/status'** commands to confirm the mesh object named "3dmesh" was created.
```
infile 01_create_hex.lgi
cmo/status/ 3dmesh / brief
```
The status report should indicate the current mesh object is a hex mesh with 1122 nodes and 800 hex elements.
<pre class="lg-output">
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
</pre>
## Create a new mesh object with points to connect
The [**'connect'**](https://lanl.github.io/LaGriT/pages/docs/commands/CONNECT1.html) command will create connectivity from a cloud of points. There should be no duplicate points, and the **imt** material should be a single value.
Copy the hex points into a new mesh object, this removed the connectivity so new elements can be created.
```
cmo / create / mo_tet
copypts / mo_tet / 3dmesh
```
We now have multiple mesh objects that can be listed. Use **cmo/select** command to make "mo_tet" mesh object current for the next commands.
Note the **cmo/status** command shows there are no elements in this mesh object. The "brief" option will show the mesh object summary without the long list of associated attributes.
```
cmo / list
cmo/ select / mo_tet
cmo/ status / mo_tet / brief
```
<pre class="lg-output">
The current-mesh-object(CMO) is: mo_tet
0 Mesh Object name: -default-
1 Mesh Object name: 3dmesh
2 Mesh Object name: mo_tet
cmo/select/mo_tet
cmo/status/mo_tet/brief
The current-mesh-object(CMO) is: mo_tet
2 Mesh Object name: mo_tet
number of nodes = 1122 number of elements = 0
dimensions geometry = 3 element type = tet
dimensions topology = 3 4 nodes 4 faces 6 edges
boundary flag = 16000000 status = active
</pre>
Prepare the points by removing duplicates and setting imt to a single value and boundary tags to 0. The **filter** command will mark duplicate points as "dudded" points; the **rmpoint/compress** command will remove the dudded nodes from the mesh object. These commands will not make any changes if there are no duplicate points.
*Note: the special token ";" can be used to call multiple commands on the same line.*
```
# Remove duplicate points if they exist
filter/1,0,0 ; rmpoint/compress
# Set some defaults for the connect routine
cmo / setatt / mo_tet / imt / 1 0 0 / 1
cmo / setatt / mo_tet / itp / 1 0 0 / 0
# Create Delaunay tet connectivity of all nodes in the mesh
connect
```
The result of the **connect** command should show success.
<pre class="lg-output">
Coordinates of enclosing tetrahedron are:
-0.20000D+03 -0.37500D+02 -0.60000D+02
0.50000D+02 -0.37500D+02 0.34000D+03
0.30000D+03 -0.37500D+02 -0.60000D+02
0.50000D+02 0.21250D+03 0.40000D+02
Successfully eliminated all multimaterial connections.
The mesh is now complete!
</pre>
It is good practice to check the results to make sure there are no zero or negative volume elements with the **quality** command.
```
quality
```
<pre class="lg-output">
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 926
elements with aspect ratio b/w .5 and 1. : 3874
min aspect ratio = 0.4483E+00 max aspect ratio = 0.6202E+00
epsilonvol: 8.8817842E-08
---------------------------------------
All elements have volume 8.3333333E+01
-----------------------------------------------------------
4800 total elements evaluated.
</pre>
Set the tet materials to 1 and update the **itp** array.
```
cmo / setatt / mo_tet / itetclr / 1
resetpts / itp
```
# Method 2 converts each hex into 5 tets
The [**'grid2grid'**](https://lanl.github.io/LaGriT/pages/docs/commands/GRID2GRID.html) is a wrapper that simplifies many of the grid-to-grid conversions. In this case we will use the option that converts each hex element into 5 tets (with no points added). This command requires the creation of a new mesh object, the new name is given first, with the source mesh object name at the end.
```
grid2grid / hextotet5 / mo_hex2tet / 3dmesh
```
Check the list of mesh objects, the new "mo_hex2tet" mesh object should now be current as the newly created object.
Check for positive volumes and set mesh default values.
```
cmo / list
quality
cmo / setatt / mo_hex2tet / itetclr / 1
resetpts / itp
```
There are now 3 mesh objects. "3dmesh" is the hex mesh created at start of this run. "mo_tet" was created with the **connect** command. "mo_hex2tet" was created by the **grid2grid/hextotet5** command.
Note the **quality** command is evaluating the current mesh object, "cmo_hex2tet".
<pre class="lg-output">
The current-mesh-object(CMO) is: mo_hex2tet
0 Mesh Object name: -default-
1 Mesh Object name: 3dmesh
2 Mesh Object name: mo_tet
3 Mesh Object name: mo_hex2tet
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 0
elements with aspect ratio b/w .5 and 1. : 4000
min aspect ratio = 0.6202E+00 max aspect ratio = 0.8165E+00
epsilonvol: 8.8817842E-08
---------------------------------------
element volumes b/w 0.8333E+02 and 0.9572E+02: 3200
element volumes b/w 0.9572E+02 and 0.1100E+03: 0
element volumes b/w 0.1100E+03 and 0.1263E+03: 0
element volumes b/w 0.1263E+03 and 0.1451E+03: 0
element volumes b/w 0.1451E+03 and 0.1667E+03: 800
min volume = 8.3333333E+01 max volume = 1.6666667E+02
-----------------------------------------------------------
4000 total elements evaluated.
</pre>
Now we have two tet meshes, one created with **connect** and the other with **grid2grid**. In general, we use the connect algorithm to create Delaunay meshes using Voronoi control volumes (FEHM, PFLOTRAN, TOUGH2). Converting hex elements into tet elements will not be Delaunay and may affect results depending on the physics used.
For viewing these new meshes, we can add node and element attributes. With the following commands we add values for each tet volume and for the voronoi volume around each mesh node.
See a list of attributes that can be created at [**`cmo/addatt`**](https://lanl.github.io/LaGriT/pages/docs/commands/cmo/cmo_addatt.html)
```
cmo/addatt / mo_tet / volume / tet_vol
cmo/addatt / mo_tet / voronoi_volume / vor_vol
cmo/addatt / mo_hex2tet / volume / tet_vol
cmo/addatt / mo_hex2tet / voronoi_volume / vor_vol
cmo/printatt/ mo_tet / tet_vol / minmax
cmo/printatt/ mo_tet / vor_vol / minmax
cmo/printatt/ mo_hex2tet / tet_vol / minmax
cmo/printatt/ mo_hex2tet / vor_vol / minmax
dump/avs/02_tet_connect.inp/mo_tet
dump/avs/02_hex2tet5.inp/mo_hex2tet
```
We can use the **cmo/printatt** command to view the minmax values of the attributes in named mesh objects.
```
cmo/printatt/ mo_tet / tet_vol / minmax
cmo/printatt/ mo_tet / vor_vol / minmax
cmo/printatt/ mo_hex2tet / tet_vol / minmax
cmo/printatt/ mo_hex2tet / vor_vol / minmax
```
The connect mesh and the hextotet mesh have the same 1122 number of nodes. But the connectivity created 4800 tet elements with connect and 4000 for hextotet mesh. Notice the tet element minmax volumes have different results, the connected mesh has volumes all equal. For this structured point distribution, the voronoi volumes for each node have the same min max range.
<pre class="lg-output">
cmo/printatt/mo_tet/tet_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
tet_vol 8.333333333E+01 8.333333333E+01 0.000000000E+00 4800
cmo/printatt/mo_tet/vor_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
vor_vol 6.250000000E+01 5.000000000E+02 4.375000000E+02 1122
cmo/printatt/mo_hex2tet/tet_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
tet_vol 8.333333333E+01 1.666666667E+02 8.333333333E+01 4000
cmo/printatt/mo_hex2tet/vor_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
vor_vol 6.250000000E+01 5.000000000E+02 4.375000000E+02 1122
</pre>
# Viewing the Tet Meshes
The following images were created by using Paraview reading the AVS mesh files. Click to see full resolution images.
Paraview images show tet elements colored by element volumes of connected Delaunay mesh (left) and grid2grid (right). The grid2grid view is clipped to see the internal tet elements that are larger than the tets formed at the hex corners.
<!-- Begin image -->
<p><a href="step_02/02_connect_vol_clipped.png"> <img width="400" src="step_02/02_connect_vol_clipped.png"> </a>
<a href="step_02/02_hex2tet_vol_clipped.png"> <img width="400" src="step_02/02_hex2tet_vol_clipped.png"> </a>
</p>
Paraview images show the mesh colored by node voronoi volumes. The boundary nodes will have half volumes, the corner nodes will have quarter volumes. Internal voronoi volumes are all the same. Image is clipped to show internal mesh nodes. Both meshes have the same voronoi volumes.
<!-- Begin image -->
<p><a href="step_02/02_connect_vorvol_clipped.png"> <img width="400" src="step_02/02_connect_vorvol_clipped.png"> </a>
<a href="step_02/02_hex2tet_vorvol_clipped.png"> <img width="400" src="step_02/02_hex2tet_vorvol_clipped.png"> </a>
</p>
<!-- End image -->
This is a snapshot showing the Paraview settings for the clipped mesh. The full 02_hex2tet5.inp mesh displayed with red wire frame. The mesh is clipped -10, and threshold is used to display tet volumes over 116.
<p><a href="step_02/02_hex2tet_vol_clipped_para.png"> <img width="400" src="step_02/02_hex2tet_vol_clipped_para.png"> </a>
</p>
## finish
Always end a session or a file with the **finish** command and a line return after the finish command. The command line parser will not parse a command without a line return.
```
finish
```
#### [LaGriT Introduction Index](index.html)
#### [Step 1. Create a Hex Mesh](step_01.html)
#### [Step 2. Convert Hex Mesh to Tet Mesh](step_02.html)
#### [Step 3. Assign materials to the Mesh](step_03.html)
#### [Step 4. Write Mesh and FEHM Setup Files](step_04.html)

View File

@@ -0,0 +1,56 @@
# Tutorial LaGriT Introduction
# Step 1. Build a Hex Mesh
# Create an empty hex mesh object called 3dmesh
cmo / create / 3dmesh / / / hex
# View the mesh object attributes
cmo / status / 3dmesh
# Define parameters that will be used to create a mesh.
# Values used will be the last written
# Mesh domain 100x50x80
define / XMIN / 0.
define / XMAX / 100.
define / YMIN / 0.
define / YMAX / 50.
define / ZMIN / 0.
define / ZMAX / 80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define / NX / 11
define / NY / 6
define / NZ / 9
define / NZ / 17
# Create points and connect into a hex mesh
createpts/brick/xyz/ NX NY NZ / XMIN YMIN ZMIN/ XMAX YMAX ZMAX / 1,1,1
# Set materials for nodes (imt) and elements (itetlcr) to 1
# This is good practice and avoids 0 values in these atttributes
# Note 1,0,0 represents all for node start,stride,end
cmo / setatt / 3dmesh / imt / 1,0,0 / 1
cmo / setatt / 3dmesh / itetclr / 1,0,0 / 1
# Set node boundary flags in the itp attribute
# This is good practice and can be called anytime to update this array
resetpts/itp
# View Mesh Object status, brief version
cmo/status/ 3dmesh / brief
# Report the min max values of the mesh attributes
# keyword -all- or -xyz- can be used
cmo/printatt/3dmesh/ -xyz- minmax
# Check mesh with quality command
# There should be no negative or zero volumes
quality
# Write an AVS format mesh file for viewing
dump/ avs / 01_hex_mesh.inp / 3dmesh
# END of command file
finish

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 KiB

View File

@@ -0,0 +1,78 @@
# Tutorial LaGriT Introduction
# Step 2. Convert Hex Mesh to Tet Mesh
# Use commands connect and grid2grid
# Create hex mesh from Example 1
infile 01_create_hex.lgi
# Check that mesh was created
cmo/status/ 3dmesh / brief
# -----------------------------------------
# Method using connect command
# Copy the hex points into a new mesh object
cmo / create / mo_tet
copypts / mo_tet / 3dmesh
# Make mo_tet the current mesh object for commands
cmo /list
cmo/ select / mo_tet
cmo/ status / mo_tet /brief
# Mark duplicate points as dudded points
# Remove dudded points from the mesh object
# Nothing will happen if there are no duplicate points
filter/1,0,0 ; rmpoint/compress
# Set some defaults for the connect routine
cmo / setatt / mo_tet / imt / 1 0 0 / 1
cmo / setatt / mo_tet / itp / 1 0 0 / 0
# Create Delaunay tet connectivity of all nodes in the mesh
connect
# Check for 0 or negative elements
quality
# set default materials and boundary tags
cmo / setatt / mo_tet / itetclr / 1
resetpts / itp
# -----------------------------------------
# Method using grid2grid command
# Convert each hex into 5 tets
grid2grid / hextotet5 / mo_hex2tet / 3dmesh
# The new mesh object should be current
cmo / list
# Check for 0 or negative elements
quality
# set default materials and boundary tags
cmo / setatt / mo_hex2tet / itetclr / 1
resetpts / itp
# -----------------------------------------
# Add Attributes and write tet mesh files
cmo/addatt / mo_tet / volume / tet_vol
cmo/addatt / mo_tet / voronoi_volume / vor_vol
cmo/addatt / mo_hex2tet / volume / tet_vol
cmo/addatt / mo_hex2tet / voronoi_volume / vor_vol
cmo/printatt/ mo_tet / tet_vol / minmax
cmo/printatt/ mo_tet / vor_vol / minmax
cmo/printatt/ mo_hex2tet / tet_vol / minmax
cmo/printatt/ mo_hex2tet / vor_vol / minmax
dump/avs/02_tet_connect.inp/mo_tet
dump/avs/02_hex2tet5.inp/mo_hex2tet
# END of command file
finish

View File

@@ -0,0 +1,78 @@
# LaGriT Tutorial Example 2
# Create tet mesh from hex mesh
# Use commands connect and grid2grid
# Create hex mesh from Example 1
infile 01_create_hex.lgi
# Check that mesh was created
cmo/status/ 3dmesh / brief
# -----------------------------------------
# Method using connect command
# Copy the hex points into a new mesh object
cmo / create / mo_tet
copypts / mo_tet / 3dmesh
# Make mo_tet the current mesh object for commands
cmo /list
cmo/ select / mo_tet
cmo/ status / mo_tet /brief
# Mark duplicate points as dudded points
# Remove dudded points from the mesh object
# Nothing will happen if there are no duplicate points
filter/1,0,0 ; rmpoint/compress
# Set some defaults for the connect routine
cmo / setatt / mo_tet / imt / 1 0 0 / 1
cmo / setatt / mo_tet / itp / 1 0 0 / 0
# Create Delaunay tet connectivity of all nodes in the mesh
connect
# Check for 0 or negative elements
quality
# set default materials and boundary tags
cmo / setatt / mo_tet / itetclr / 1
resetpts / itp
# -----------------------------------------
# Method using grid2grid command
# Convert each hex into 5 tets
grid2grid / hextotet5 / mo_hex2tet / 3dmesh
# The new mesh object should be current
cmo / list
# Check for 0 or negative elements
quality
# set default materials and boundary tags
cmo / setatt / mo_hex2tet / itetclr / 1
resetpts / itp
# -----------------------------------------
# Add Attributes and write tet mesh files
cmo/addatt / mo_tet / volume / tet_vol
cmo/addatt / mo_tet / voronoi_volume / vor_vol
cmo/addatt / mo_hex2tet / volume / tet_vol
cmo/addatt / mo_hex2tet / voronoi_volume / vor_vol
cmo/printatt/ mo_tet / tet_vol / minmax
cmo/printatt/ mo_tet / vor_vol / minmax
cmo/printatt/ mo_hex2tet / tet_vol / minmax
cmo/printatt/ mo_hex2tet / vor_vol / minmax
dump/avs/02_tet_connect.inp/mo_tet
dump/avs/02_hex2tet5.inp/mo_hex2tet
# END of command file
finish

View File

@@ -0,0 +1,439 @@
* * * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * Program: LaGriT V3.3.4 Linux *
* * Compiler Name: GNU *
* * Compiler Version: 9.4.0 *
* * Date Compile: 2024/05/06 *
* * Run Time: 2025/Jan 21 12:03:38 *
* * Manual: https://lagrit.lanl.gov *
* * *
* * * * * * * * * * * * * * * * * * * * * * * * *
-----oOo-----
LaGriT V3 LA-CC-15-069 https://github.com/lanl/LaGriT
Copyright 2016. Triad National Security, LLC. All rights reserved. This
program was produced under U.S. Government contract 89233218CNA000001
for Los Alamos National Laboratory (LANL), which is operated by Triad
National Security, LLC for the U.S. Department of Energy/National Nuclear
Security Administration. All rights in the program are reserved by Triad
National Security, LLC, and the U.S. Department of Energy/National Nuclear
Security Administration. The Government is granted for itself and others
acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license
in this material to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit others to
do so. This software is open source and available under the BSD-3 License.
-----oOo-----
Output log file: lagrit.out
Command log file: lagrit.log
# LaGriT Tutorial Example 2
# Create tet mesh from hex mesh
# Use commands connect and grid2grid
# Create hex mesh from Example 1
infile 01_create_hex.lgi
# Tutorial Example 1
#
# Create an empty hex mesh object called 3dmesh
cmo/create/3dmesh///hex
# View the mesh object attributes
cmo/status/3dmesh
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 0 number of elements = 0
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
NAME TYPE RANK LENGTH INTER PERSI IO VALUE
1 -def- VDOU scalar nnodes linea tempo agl 0.000E+00
2 scalar INT scalar scalar const perma l 1.000E+00
3 vector INT scalar scalar const perma l 3.000E+00
4 nnodes INT scalar scalar const perma l 0.000E+00
5 nedges INT scalar scalar const perma l 0.000E+00
6 nfaces INT scalar scalar const perma l 0.000E+00
7 nelements INT scalar scalar const perma l 0.000E+00
8 mbndry INT scalar scalar const perma l 1.600E+07
9 ndimensions_top INT scalar scalar const perma l 3.000E+00
10 ndimensions_geo INT scalar scalar const perma l 3.000E+00
11 nodes_per_eleme INT scalar scalar const perma l 8.000E+00
12 edges_per_eleme INT scalar scalar const perma l 1.200E+01
13 faces_per_eleme INT scalar scalar const perma l 6.000E+00
14 isetwd VDOU scalar nnodes or perma l 0.000E+00
15 ialias VINT scalar nnodes seque perma l 0.000E+00
16 imt1 VINT scalar nnodes max perma gal 0.000E+00
17 itp1 VINT scalar nnodes min perma gal 0.000E+00
18 icr1 VINT scalar nnodes min perma gal 0.000E+00
19 isn1 VINT scalar nnodes user perma gal 0.000E+00
20 xic VDOU scalar nnodes linea perma l 0.000E+00
21 yic VDOU scalar nnodes linea perma l 0.000E+00
22 zic VDOU scalar nnodes linea perma l 0.000E+00
23 xtetwd VDOU scalar nelements or perma l 0.000E+00
24 itetclr VINT scalar nelements user perma l 0.000E+00
25 itettyp VINT scalar nelements user perma l 0.000E+00
26 itetoff VINT scalar nelements user perma l 0.000E+00
27 jtetoff VINT scalar nelements user perma l 0.000E+00
28 itet VINT nodes_per_ nelements user perma l 0.000E+00
29 jtet VINT faces_per_ nelements user perma l 0.000E+00
30 ipolydat CHAR scalar scalar const perma l no
31 vor2d CHAR scalar scalar const perma l yes
32 vor3d CHAR scalar scalar const perma l no
33 epsilon REAL scalar scalar const perma l 1.000E-15
34 epsilonl REAL scalar scalar const perma l 1.000E-08
35 epsilona REAL scalar scalar const perma l 1.000E-08
36 epsilonv REAL scalar scalar const perma l 1.000E-08
37 ipointi INT scalar scalar const perma l 0.000E+00
38 ipointj INT scalar scalar const perma l 0.000E+00
39 idebug INT scalar scalar const perma l 0.000E+00
40 itypconv_sm INT scalar scalar const perma l 1.000E+00
41 maxiter_sm INT scalar scalar const perma l 2.500E+01
42 tolconv_sm REAL scalar scalar const perma l 1.000E+00
43 nnfreq INT scalar scalar const perma l 1.000E+00
44 ivoronoi INT scalar scalar const perma l 1.000E+00
45 iopt2to2 INT scalar scalar const perma l 2.000E+00
46 dumptype CHAR scalar scalar const perma l binary
47 velname CHAR scalar scalar const perma l vels
48 densname CHAR scalar scalar const perma l ric
49 presname CHAR scalar scalar const perma l pic
50 enername CHAR scalar scalar const perma l eic
51 xmin REAL scalar scalar const perma l -1.000E+00
52 ymin REAL scalar scalar const perma l -1.000E+00
53 zmin REAL scalar scalar const perma l -1.000E+00
54 xmax REAL scalar scalar const perma l 1.000E+00
55 ymax REAL scalar scalar const perma l 1.000E+00
56 zmax REAL scalar scalar const perma l 1.000E+00
57 kdtree_level INT scalar scalar const perma l 0.000E+00
58 max_number_sets INT scalar scalar const perma l 6.400E+01
59 number_of_psets INT scalar scalar const perma l 0.000E+00
60 number_of_eltse INT scalar scalar const perma l 0.000E+00
61 psetnames VCHA scalar max_number_sets const perma l
62 eltsetnames VCHA scalar max_number_sets const perma l
63 geom_name CHAR scalar max_number_sets const perma l -defaultge
64 fsetnames VCHA scalar max_number_sets const perma l
65 number_of_fsets INT scalar scalar const perma l 0.000E+00
# Define parameters that will be used to create a mesh.
# Values used will be the last written
# Mesh domain 100x50x80
define/XMIN/0.
define/XMAX/100.
define/YMIN/0.
define/YMAX/50.
define/ZMIN/0.
define/ZMAX/80.
# Set the number of points along each axis
# Spacing of 10 will have 11 points for length 100
define/NX/11
define/NY/6
define/NZ/9
define/NZ/17
# Create points and connect into a hex mesh
createpts/brick/xyz/NX NY NZ/XMIN YMIN ZMIN/XMAX YMAX ZMAX/1,1,1
Number of nodes: 1122
Number of elements: 800
Number of negative volume elements: 0
Total volume: 0.400000000000E+06
# Set materials for nodes (imt) and elements (itetlcr) to 1
# This is good practice and avoids 0 values in these atttributes
# Note 1,0,0 represents all for node start,stride,end
cmo/setatt/3dmesh/imt/1,0,0/1
1122 values reset for attribute imt1
cmo/setatt/3dmesh/itetclr/1,0,0/1
800 values reset for attribute itetclr
# Set node boundary flags in the itp attribute
# This is good practice and can be called anytime to update this array
resetpts/itp
geniee
finish
# View Mesh Object status, brief version
cmo/status/3dmesh/brief
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
# Report the min max values of the mesh attributes
# keyword -all- or -xyz- can be used
cmo/printatt/3dmesh/-xyz- minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
xic 0.000000000E+00 1.000000000E+02 1.000000000E+02 1122
yic 0.000000000E+00 5.000000000E+01 5.000000000E+01 1122
zic 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
# Check mesh with quality command
# There should be no negative or zero volumes
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 0
elements with aspect ratio b/w .5 and 1. : 800
min aspect ratio = 0.1000E+01 max aspect ratio = 0.1000E+01
epsilonvol: 8.8817842E-08
---------------------------------------
All elements have volume 5.0000000E+02
-----------------------------------------------------------
800 total elements evaluated.
# Write an AVS format mesh file for viewing
dump/avs/01_hex_mesh.inp/3dmesh
cmo/modatt/-def-/-def-/ioflag/x
finish
# END of command file
finish
# Check that mesh was created
cmo/status/3dmesh/brief
The current-mesh-object(CMO) is: 3dmesh
1 Mesh Object name: 3dmesh
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
# -----------------------------------------
# Method using connect command
# Copy the hex points into a new mesh object
cmo/create/mo_tet
copypts/mo_tet/3dmesh
copypts added nodes 1 to 1122
# Make mo_tet the current mesh object for commands
cmo/list
The current-mesh-object(CMO) is: mo_tet
0 Mesh Object name: -default-
1 Mesh Object name: 3dmesh
2 Mesh Object name: mo_tet
cmo/select/mo_tet
cmo/status/mo_tet/brief
The current-mesh-object(CMO) is: mo_tet
2 Mesh Object name: mo_tet
number of nodes = 1122 number of elements = 0
dimensions geometry = 3 element type = tet
dimensions topology = 3 4 nodes 4 faces 6 edges
boundary flag = 16000000 status = active
# Mark duplicate points as dudded points
# Remove dudded points from the mesh object
# Nothing will happen if there are no duplicate points
filter/1,0,0
FILTER:Use internal epsilonl value = 0.305260862918E-10
FILTER:Dudding duplicate points: 0
rmpoint/compress
0 points removed and 0 elements removed.
RMPOINT: new point count is 1122
RMPOINT: new element count is 0
# Set some defaults for the connect routine
cmo/setatt/mo_tet/imt/1 0 0/1
Warning: nelements = 0
1122 values reset for attribute imt1
cmo/setatt/mo_tet/itp/1 0 0/0
Warning: nelements = 0
1122 values reset for attribute itp1
# Create Delaunay tet connectivity of all nodes in the mesh
connect
Coordinates of enclosing tetrahedron are:
-0.20000D+03 -0.37500D+02 -0.60000D+02
0.50000D+02 -0.37500D+02 0.34000D+03
0.30000D+03 -0.37500D+02 -0.60000D+02
0.50000D+02 0.21250D+03 0.40000D+02
Successfully eliminated all multimaterial connections.
The mesh is now complete!
LaGriT FINISH: connect
# Check for 0 or negative elements
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 926
elements with aspect ratio b/w .5 and 1. : 3874
min aspect ratio = 0.4483E+00 max aspect ratio = 0.6202E+00
epsilonvol: 8.8817842E-08
---------------------------------------
All elements have volume 8.3333333E+01
-----------------------------------------------------------
4800 total elements evaluated.
# set default materials and boundary tags
cmo/setatt/mo_tet/itetclr/1
4800 values reset for attribute itetclr
resetpts/itp
geniee
finish
# -----------------------------------------
# Method using grid2grid command
# Convert each hex into 5 tets
grid2grid/hextotet5/mo_hex2tet/3dmesh
hextotet/5/mo_hex2tet/3dmesh
iremove_vol= 0 iremove_dup= 0 icheckpt= 1
Input Mesh type hex using option 5
Element Material ID, min/max/range: 1 1 0
Epsilon-dist, distmax, distmin: -1.0000000E-05 1.0000000E+02 2.5000000E+01
Epsilon-volume, volmax: 5.0000000E-04 5.0000000E+02
cmo/addatt/mo_hex2tet/iign/vint/scalar/nnodes/-def-/-def-/gx/-def-
finish
WARNING: Volumes le zero not removed, nelements= 4000
No duplicate points
WARNING: Duplicate points not removed, nnodes = 1122
finish
# The new mesh object should be current
cmo/list
The current-mesh-object(CMO) is: mo_hex2tet
0 Mesh Object name: -default-
1 Mesh Object name: 3dmesh
2 Mesh Object name: mo_tet
3 Mesh Object name: mo_hex2tet
# Check for 0 or negative elements
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 0
elements with aspect ratio b/w .5 and 1. : 4000
min aspect ratio = 0.6202E+00 max aspect ratio = 0.8165E+00
epsilonvol: 8.8817842E-08
---------------------------------------
element volumes b/w 0.8333E+02 and 0.9572E+02: 3200
element volumes b/w 0.9572E+02 and 0.1100E+03: 0
element volumes b/w 0.1100E+03 and 0.1263E+03: 0
element volumes b/w 0.1263E+03 and 0.1451E+03: 0
element volumes b/w 0.1451E+03 and 0.1667E+03: 800
min volume = 8.3333333E+01 max volume = 1.6666667E+02
-----------------------------------------------------------
4000 total elements evaluated.
# set default materials and boundary tags
cmo/setatt/mo_hex2tet/itetclr/1
4000 values reset for attribute itetclr
resetpts/itp
geniee
finish
# -----------------------------------------
# Add Attributes and write tet mesh files
cmo/addatt/mo_tet/volume/tet_vol
ADDATT/volume: creating new attribute: tet_vol
cmo/addatt/mo_tet/voronoi_volume/vor_vol
ADDATT/voronoi_volume: creating new attribute: vor_vol
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 = 1122 ncoefs = 7144
AMatbld3d_stor: Number of unique coefs = 4133
AMatbld3d_stor: Maximum num. connections to a node = 7
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
AMatbld3d_stor: Total Volume: 4.0000000E+05
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
AMatbld3d_stor: abs(Aij/xij) max = 2.0000000E+01
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
AMatbld3d_stor: (Aij/xij) min = -2.0000000E+01
AMatbld3d_stor Matrix coefficient values stored as scalar area/distance
AMatbld3d_stor Matrix compression used for graph, not coefficient values
mo_tet attribute with voronoi volumes created with name vor_vol
*** SPARSE COEFFICIENT MATRIX _gstor SUCCESSFUL ***
3D Matrix Coefficient file written with name -notset-
cmo/addatt/mo_hex2tet/volume/tet_vol
ADDATT/volume: creating new attribute: tet_vol
cmo/addatt/mo_hex2tet/voronoi_volume/vor_vol
ADDATT/voronoi_volume: creating new attribute: vor_vol
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 = 1122 ncoefs = 7144
AMatbld3d_stor: Number of unique coefs = 4133
AMatbld3d_stor: Maximum num. connections to a node = 7
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
AMatbld3d_stor: Total Volume: 4.0000000E+05
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
AMatbld3d_stor: abs(Aij/xij) max = 2.0000000E+01
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
AMatbld3d_stor: (Aij/xij) min = -2.0000000E+01
AMatbld3d_stor Matrix coefficient values stored as scalar area/distance
AMatbld3d_stor Matrix compression used for graph, not coefficient values
mo_hex2tet attribute with voronoi volumes created with name vor_vol
*** SPARSE COEFFICIENT MATRIX _gstor SUCCESSFUL ***
3D Matrix Coefficient file written with name -notset-
cmo/printatt/mo_tet/tet_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
tet_vol 8.333333333E+01 8.333333333E+01 0.000000000E+00 4800
cmo/printatt/mo_tet/vor_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
vor_vol 6.250000000E+01 5.000000000E+02 4.375000000E+02 1122
cmo/printatt/mo_hex2tet/tet_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
tet_vol 8.333333333E+01 1.666666667E+02 8.333333333E+01 4000
cmo/printatt/mo_hex2tet/vor_vol/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
vor_vol 6.250000000E+01 5.000000000E+02 4.375000000E+02 1122
dump/avs/02_tet_connect.inp/mo_tet
cmo/modatt/-def-/-def-/ioflag/x
finish
dump/avs/02_hex2tet5.inp/mo_hex2tet
cmo/modatt/-def-/-def-/ioflag/x
finish
# END of command file
finish
LaGriT successfully completed

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,52 @@
infile 01_create_hex.lgi
cmo/create/3dmesh///hex
cmo/status/3dmesh
define/XMIN/0.
define/XMAX/100.
define/YMIN/0.
define/YMAX/50.
define/ZMIN/0.
define/ZMAX/80.
define/NX/11
define/NY/6
define/NZ/9
define/NZ/17
createpts/brick/xyz/NX NY NZ/XMIN YMIN ZMIN/XMAX YMAX ZMAX/1,1,1
cmo/setatt/3dmesh/imt/1,0,0/1
cmo/setatt/3dmesh/itetclr/1,0,0/1
resetpts/itp
cmo/status/3dmesh/brief
cmo/printatt/3dmesh/-xyz- minmax
quality
dump/avs/01_hex_mesh.inp/3dmesh
finish
cmo/status/3dmesh/brief
cmo/create/mo_tet
copypts/mo_tet/3dmesh
cmo/list
cmo/select/mo_tet
cmo/status/mo_tet/brief
filter/1,0,0
rmpoint/compress
cmo/setatt/mo_tet/imt/1 0 0/1
cmo/setatt/mo_tet/itp/1 0 0/0
connect
quality
cmo/setatt/mo_tet/itetclr/1
resetpts/itp
grid2grid/hextotet5/mo_hex2tet/3dmesh
cmo/list
quality
cmo/setatt/mo_hex2tet/itetclr/1
resetpts/itp
cmo/addatt/mo_tet/volume/tet_vol
cmo/addatt/mo_tet/voronoi_volume/vor_vol
cmo/addatt/mo_hex2tet/volume/tet_vol
cmo/addatt/mo_hex2tet/voronoi_volume/vor_vol
cmo/printatt/mo_tet/tet_vol/minmax
cmo/printatt/mo_tet/vor_vol/minmax
cmo/printatt/mo_hex2tet/tet_vol/minmax
cmo/printatt/mo_hex2tet/vor_vol/minmax
dump/avs/02_tet_connect.inp/mo_tet
dump/avs/02_hex2tet5.inp/mo_hex2tet
finish

View File

@@ -0,0 +1,372 @@
---
title: Tutorial LaGriT Introduction Step 03
---
# Step 3. Assign Materials to Hex Mesh and Tet Mesh
<p>
<a href="step_03/step_03_3_meshes.png"> <img width="600" src="step_03/step_03_3_meshes.png" /> </a>
</p>
<br>
<!-- End image -->
#### LaGriT command file: [03_assign_materials.lgi](step_03/03_assign_materials.lgi.txt)
#### LaGriT output file: [lagrit.out](step_03/03_assign_materials.out.txt)
#### LaGriT all run files: [Folder step_03](https://github.com/lanl/LaGriT/tree/master/docs/pages/tutorial/lagrit_introduction/step_03)
This example will show how to use some basic commands to assign materials to mesh nodes and elements. Interpolation of materials from the hex mesh to the tet mesh is used to ensure block shaped interfaces.
Methods include:
- Set selections using [**`pset`**](https://lanl.github.io/LaGriT/pages/docs/commands/PSET.html) for mesh points and [**`eltset`**](https://lanl.github.io/LaGriT/pages/docs/commands/ELTSET2.html).
- Regions defined by surfaces using [**`surface`**](https://lanl.github.io/LaGriT/pages/docs/commands/SURFACE.html) and [**`region`**](https://lanl.github.io/LaGriT/pages/docs/commands/REGION.html)
- Interpolation from hex materials to tet mesh materials using [**`interpolate`**](https://lanl.github.io/LaGriT/pages/docs/commands/main_interpolate.html)
- Use LaGriT commands to report material node and element counts for the final mesh
## Define Mesh Names
In this example we assign materials (color) to the hex mesh, then interpolate hex mesh materials to the tet mesh. This method ensures nice interfaces between materials. If the tet mesh is colored with following methods, the tet interfaces will be ragged, with tet elements sticking out.
Define input and output file names for easy switch between mesh types. As seen here, the second set of file names are last defined and will be used. If you want to see how it looks to use the tet mesh, simply copy and paste the first 2 lines after the hex file names.
Results are shown in image at top of page. Image a. This example hex_colors.inp b. Run with tet_colors.inp c. This example using interpolation for tet_colors.inp
```
define IN_FILE 02_tet_mesh.inp
define OUT_FILE tet_colors.inp
define IN_FILE 01_hex_mesh.inp
define OUT_FILE hex_colors.inp
```
## Read the Hex Mesh
We start with the hex mesh created in Step 1. of this tutorial. Instead of creating it again, we just read the AVS mesh file. Note the variable IN_FILE is define above as "01_hex_mesh.inp". We have given the mesh object the name mo_mat to indicate it is the mesh object we will assign materials to. You can name the mesh anything you want if it is clear and consistent with your usage.
```
read/avs/ IN_FILE / mo_mat
cmo/status/mo_mat/ brief
cmo/select/mo_mat
```
## Assign Materials by Selected Sets (pset and eltset)
Define some elevations for layers between top and bottom of mesh between 0. and 80.
```
define MAT1_Ztop 40.
define MAT2_Ztop 62.
```
For the current mesh, select node sets based on the attribute zic (Z coordinate). Name the psets "pmat1", "pmat2", and "pmat3" for use in assigning materials. Note reminder the "1,0,0" refers to node numbers start, stride, stop where "0,0" indicates "all".
```
pset/pmat1/attribute zic/1,0,0/ lt MAT1_Ztop
pset/pmat2/attribute zic/1,0,0/ lt MAT2_Ztop
pset/pmat3/attribute zic/1,0,0/ ge MAT2_Ztop
```
Based on the set selections above, we can now assign integer values to node materials in the **imt** attribute.
In this example ordering of assignment matters as both "pmat1" and "pmat2" overlap below zic=40. This is ok, we simply overwrite by assigning the lowest set last.
```
cmo/setatt/mo_mat/imt/ pset,get,pmat3 / 3
cmo/setatt/mo_mat/imt/ pset,get,pmat2 / 2
cmo/setatt/mo_mat/imt/ pset,get,pmat1 / 1
```
To assign materials to the elements, we use the psets above to create element sets. Note elements can be formed to make sure each vertice of the element is in the pset, or such that only one needs to be in the pset.
In this example we use **inclusive** which will include more elements than the **exclusive** option.
After setting the element sets, assign material integers to the **itetclr** element attribute in same order as the psets.
```
eltset/emat1/inclusive/pset,get,pmat1
eltset/emat2/inclusive/pset,get,pmat2
eltset/emat3/inclusive/pset,get,pmat3
cmo/setatt/mo_mat/itetclr/eltset,get,emat3/ 3
cmo/setatt/mo_mat/itetclr/eltset,get,emat2/ 2
cmo/setatt/mo_mat/itetclr/eltset,get,emat1/ 1
```
Write a temporary file to view node and element colors so far.
```
dump/ tmp_layers.inp / mo_mat
```
Viewing the mesh file tmp_layers.inp we can check if node **imt** and element Materials are set as we intended. The result is a mesh with 3 layers with material 1 at the bottom and 3 at the top.
These images were created from Paraview showing the mesh colored by node attribute **imt** left. The mesh is colored by element materials on the right, mesh nodes colored by **imt**. Though modeling software such as FEHM use only the node materials, viewing the mesh by element color presents a better picture. Click on images to view full resolution image.
<p>
<a href="step_03/step_03_hex_layers_imt.png"> <img width="350" src="step_03/step_03_hex_layers_imt.png" /> </a>
<a href="step_03/step_03_hex_layers_imt_itetclr.png"> <img width="350" src="step_03/step_03_hex_layers_imt_itetclr.png" /> </a>
</p>
<br>
## Assign Materials by Surfaces
The **region** command is extremely useful for defining nodes or elements based on surfaces or geometric shapes. Most of these are represented by their equations, but a surface can also be a mesh that is created or read from file as used in this example. We create two surfaces using **surface/sheet/**/*mo_name* which will be used to define a region representing a fourth material.
Note. In this case we use a mesh object name that implies it is temporary and will be deleted after use. Creating naming conventions for your objects will help you to keep track of objects during the workflow.
```
cmo / create / motmp
cmo / select / motmp
```
Create a quad mesh based on corner coordinates, since this will be used to define regions on the mesh, make sure the surface coordinates extend equal or greater to the mesh. A surface that truncates inside the mesh domain will be ill defined with respect to below or above. These two surfaces could also be created with the **surface/plane** command and used in the same way, but are internal and can not be viewed with respect to the mesh.
The **brick** option for **createpts** is used to create a quad mesh from the point distribution. The quads are converted to triangles with the **hextotet** command. After the surface is created, print the minmax coordinates and view the surface to make sure it where you want it.
```
quadxy / 10 5 /-1. -1. 10. /100.1 -1. 100./ &
100.1 51. 100./ -1. 51. 10.
createpts/brick/xyz/ 10 5 1 /1,0,0/connect
hextotet/4/ mosurf1 / motmp
cmo / printatt / mosurf1 / -xyz- / minmax
dump/ tmp_surf1.inp / mosurf1
```
Create a second surface offset from first surface by a distance of 15 in the positive direction.
```
offsetsurf/ mosurf2 / mosurf1 / 15.
dump/ tmp_surf2.inp / mosurf2
```
View the mesh and the surfaces together to be sure it is correct. The nodes colored red in the image is the region we will set to material 4.
<p>
<a href="step_03/step_03_hex_colors_surfs.png"> <img width="420" src="step_03/step_03_hex_colors_surfs.png" /> </a>
</p>
To use the geometry commands such as surfaces and regions, FIRST make sure your mesh object is current. Otherwise, these geometry command will not be available for use on the mesh object. Use the **cmo/select** command to make sure you apply these commands to the "mo_mat" mesh object.
In the previous steps we created two mesh objects, mosurf1 and mosurf2. We now tell LaGriT to use those mesh objects to define surfaces of type **sheet**. There are many types of surfaces such as cone, and box. See more at [**`surface`**](https://lanl.github.io/LaGriT/pages/docs/commands/SURFACE.html).
```
cmo / select / mo_mat
surface / s_mosurf1 / reflect / sheet / mosurf1
surface / s_mosurf2 / reflect / sheet / mosurf2
```
Now that LaGriT has sheets named "s_mosurf1" and "s_mosurf2" defined for the mesh object geometry, we can use them to define a region between the surfaces.
The **le** and **ge** operators are used with the [**`region`***](https://lanl.github.io/LaGriT/pages/docs/commands/REGION.html) command to define regions. For instance, **ge** for a surface means the space on the same side as the surface normal direction, **le** means the space opposite of the normal direction. Use **le, ge** to include nodes equal to the surface, otherwise use **lt, gt**.
```
region/ r_slant / ge s_mosurf1 and le s_mosurf2
```
Now use this region named "r_slant" to define node and elements in the slanted region. Use the **cmo/setatt** command with these sets to assign the value 4 to node **imt** and element **itetclr** arrays, but only to the defined sets. The value 4 will overwrite previous values of 1-3 set earlier.
```
pset/ pslant / region / r_slant
eltset/ eslant / region / r_slant
cmo/ setatt / mo_mat / imt / pset,get,pslant / 4
cmo/ setatt / mo_mat / itetclr / eltset,get,eslant / 4
```
Since the materials have changed, it is good practice to update the boundary and interface attribute **itp** mesh arrays.
Write the mesh with materials using the "OUT_FILE" variable defined at the beginning.
```
resetpts/itp
dump / OUT_FILE / mo_mat
cmo / status / mo_mat / brief
```
Debug hint: things often go wrong early in the script, make sure there are no errors before continuing. You can do this by adding an early finish and observing the output report. If there are no errors reported, and the mesh looks as expected, comment the **finish** command so the LaGriT command continues.
```
# Uncomment Early finish to check results
# finish
```
## Assign Materials by Interpolation
If you color the tetrahedral mesh using the above steps, you might get ragged edges that do not look as nice as the colored hex mesh. And if you added refinement to your mesh, using your original coarse hex mesh colors will better preserve the layers as you intended. This will preserve the stair-step interfaces of materials
It is good practice to remove mesh objects that are no longer needed. The more mesh objects that exist, the greater possibility of things getting tangled or mistakes with typos.
```
cmo/delete/motmp
cmo/delete/mosurf1
cmo/delete/mosurf2
cmo/list
```
Now that we have a hex mesh with materials the way we like them. Read the computational tetrahedral mesh (from Step 2), and interpolate the hex (source) values to the tet mesh.
```
read/avs/ 02_tet_mesh.inp / mo_tet
cmo/select/mo_tet
```
The **interpolate/map** command copies the value from the enclosing source element to the element (centroid).
The **interpolate/voronoi** command copies the value from the nearest source node to the sink node.
```
interpolate/map/mo_tet/ itetclr /1,0,0/ mo_mat itetclr
interpolate/voronoi/mo_tet/ imt /1,0,0/ mo_mat imt
```
<p>Mesh left shows results if these steps are applied to the tet mesh. Mesh right shows hex mesh interpolated to tet mesh.
<a href="step_03/step_03_tet_colors_bad.png"> <img width="350" src="step_03/step_03_tet_colors_bad.png" /> </a>
<a href="step_03/step_03_tet_colors_good.png"> <img width="350" src="step_03/step_03_tet_colors_good.png" /> </a>
</p>
Check the interpolated materials with the **printatt** commands. There should be minmax values 1 and 4.
```
cmo/printatt/mo_tet/imt minmax
cmo/printatt/mo_tet/itetclr minmax
```
<pre class="lg-output">
cmo/printatt/mo_tet/imt minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
cmo/printatt/mo_tet/itetclr minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
itetclr 1 4 3 4800
</pre>
Set the boundary nodes based on these new materials and write an AVS mesh file for viewing.
```
resetpts/itp
dump/avs/tet_interp_materials.inp mo_tet
```
## Report Material Quantities
Sometimes it helps to see node and element material quantities before viewing the mesh. This is a good way to catch easy mistakes. These results are also useful to include in reports as part of the setup description. Scripts can be written to parse "lagrit.out" results for nice tables and other summary information.
The minmax option is a quick easy way to check for mistakes. The **imt1** (same as **imt**) attribute are the node materials, so length of the array is 1122, the number of nodes in this mesh. The **itetclr** attribute are the element materials with a length of 4800, the number of elements in this mesh. As expected, they both have values from 1 to 4.
**Note: these material attributes must have integer numbers greater than 0**
Note. Unless the tet mesh is modified to be different from the source hex mesh, they will have the same number of nodes. Only the element type and count will change.
```
cmo/select/mo_tet
cmo/printatt/mo_tet/ imt minmax
cmo/printatt/mo_tet/ itetclr minmax
```
LaGriT will show the following results.
<pre class="lg-output">
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
cmo/printatt/mo_tet/itetclr minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
itetclr 1 4 3 4800
</pre>
This command will report element volumes by material ID, default is all, but single value reports are an option.
```
quality/ volume / material
```
The summary of element volume materials should look like this:
<pre class="lg-output">
SUMMARY VOLUME/AREA of ELEMENT COLORS for mo_tet 1 4
...........................................................
Color Num. Elements Volume Fractional Volume
1 2160 0.1800000E+06 0.450000000
2 1140 0.9500000E+05 0.237500000
3 720 0.6000000E+05 0.150000000
4 780 0.6500000E+05 0.162500000
Total elements: 4800 Total Volume: 0.4000000E+06
-----------------------------------------------------------
4800 total elements evaluated.
</pre>
For modeling applications such as FEHM, the node materials are used, not the elements. This **dump/zone_imt** command is part of the FEHM commands available to write material zone files. It also creates a good summary of the node materials.
```
dump/zone_imt/ tet / mo_tet
```
The summary of node counts by material will look like this:
<pre class="lg-output">
*********dump_material_lists********
Minimum material ID value = 1
Maximum material ID value = 4
Total possible materials = 4
Material 1 has 468 nodes. #nodes/nnodes is 0.417112290859
Material 2 has 270 nodes. #nodes/nnodes is 0.240641713142
Material 3 has 204 nodes. #nodes/nnodes is 0.181818187237
Material 4 has 180 nodes. #nodes/nnodes is 0.160427808762
</pre>
We do not currently have an easy wrapper command for a summary of voronoi volumes, but a summary can be generated by using the following commands.
1. Use the command [**`cmo/addatt`**](https://lanl.github.io/LaGriT/pages/docs/commands/cmo/cmo_addatt.html) to create a node attribute with values of voronoi volumes for each node.
2. Create a pset for each material value.
3. Use the [**`math`**](https://lanl.github.io/LaGriT/pages/docs/commands/MATH.html) command to sum all voronoi values in the indicated **pset,get,p1** set of nodes.
*Note: the [**`loop`**](https://lanl.github.io/LaGriT/pages/docs/commands/loop.html) command can be used to loop through each of the material values.*
```
cmo addatt/mo_tet/vor_volume/vorvol
pset/p1/attribute/imt/1,0,0/ eq 1
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 2
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 3
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 4
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
```
There will be some extra LaGriT output during the run including "AMatbld3d_stor" output regarding the voronoi volumes and associated coefficients. Extra lines can be removed for a summary that looks like this:
<pre class="lg-output">
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
AMatbld3d_stor: Total Volume: 4.0000000E+05
THE PSET p1 HAS 468 POINTS
vorvol sum = 0.167500000000E+06
THE PSET p1 HAS 270 POINTS
vorvol sum = 0.100000000000E+06
THE PSET p1 HAS 204 POINTS
vorvol sum = 0.650000000000E+05
THE PSET p1 HAS 180 POINTS
vorvol sum = 0.675000000000E+05
</pre>
## finish
Always end a session or a file with the **finish** command and a line return after the finish command. The command line parser will not parse a command without a line return.
```
finish
```
#### [LaGriT Introduction Index](index.html)
#### [Step 1. Create a Hex Mesh](step_01.html)
#### [Step 2. Convert Hex Mesh to Tet Mesh](step_02.html)
#### [Step 3. Assign materials to the Mesh](step_03.html)
#### [Step 4. Write Mesh and FEHM Setup Files](step_04.html)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,157 @@
# Tutorial LaGriT Introduction
# Step 3. Assign Materials to the Tet Mesh
# Using commands pset, regions, and interpolation
define IN_FILE 02_tet_mesh.inp
define OUT_FILE tet_colors.inp
define IN_FILE 01_hex_mesh.inp
define OUT_FILE hex_colors.inp
# Read the IN_FILE to color materials
read/avs/ IN_FILE / mo_mat
cmo/status/mo_mat/ brief
cmo/select/mo_mat
# -----------------------------------------------------------
# Assign materials by Selected sets
# define some elevations for layers between Z= 0 and 80
define MAT1_Ztop 40.
define MAT2_Ztop 62.
# SELECT NODE SETS based on attribute zic (Z coordinate)
pset/pmat1/attribute zic/1,0,0/ lt MAT1_Ztop
pset/pmat2/attribute zic/1,0,0/ lt MAT2_Ztop
pset/pmat3/attribute zic/1,0,0/ ge MAT2_Ztop
# SET NODE IMT in order such that last overwrites previous
# layer 2 overwrites layer 3, layer 1 overwrites layer 2
cmo/setatt/mo_mat/imt/ pset,get,pmat3 / 3
cmo/setatt/mo_mat/imt/ pset,get,pmat2 / 2
cmo/setatt/mo_mat/imt/ pset,get,pmat1 / 1
# SELECT ELEMENT SETS based on point sets
# Use inclusive for any node of element is in set
eltset/emat1/inclusive/pset,get,pmat1
eltset/emat2/inclusive/pset,get,pmat2
eltset/emat3/inclusive/pset,get,pmat3
# SET ELEMENT ITETCLR in order
cmo/setatt/mo_mat/itetclr/eltset,get,emat3/ 3
cmo/setatt/mo_mat/itetclr/eltset,get,emat2/ 2
cmo/setatt/mo_mat/itetclr/eltset,get,emat1/ 1
# write a temporary file to view colors so far
dump/ tmp_layers.inp / mo_mat
# -----------------------------------------------------------
# Assign materials by Surfaces and Regions
# Create surfaces to define a fourth material
cmo / create / motmp
cmo / select / motmp
# Create a quad mesh based on corner coordinates
# The surface must be equal or larger than the mesh domain
quadxy / 10 5 /-1. -1. 10. /100.1 -1. 100./ &
100.1 51. 100./ -1. 51. 10.
createpts/brick/xyz/ 10 5 1 /1,0,0/connect
hextotet/4/ mosurf1 / motmp
cmo / printatt / mosurf1 / -xyz- / minmax
dump/ tmp_surf1.inp / mosurf1
# Create a second surface offset from first
offsetsurf/ mosurf2 / mosurf1 / 15.
dump/ tmp_surf2.inp / mosurf2
# Define mesh objects as surfaces for geometry
# Make mesh current so geometry is assigned to it
cmo / select / mo_mat
surface / s_mosurf1 / reflect / sheet / mosurf1
surface / s_mosurf2 / reflect / sheet / mosurf2
# Define region between the surfaces
region/ r_slant / ge s_mosurf1 and le s_mosurf2
# Select node and element sets in the slanted region
pset/ pslant / region / r_slant
eltset/ eslant / region / r_slant
# SET element and node materials
cmo/ setatt / mo_mat / imt / pset,get,pslant / 4
cmo/ setatt / mo_mat / itetclr / eltset,get,eslant / 4
# set boundary and interface nodes
resetpts/itp
dump / OUT_FILE / mo_mat
cmo / status / mo_mat / brief
# uncomment Early finish to check results
# finish
# -----------------------------------------------------------
# Assign materials by Interpolation
# This will preserve the stair-step interfaces of materials
# remove unneeded mesh objects
cmo/delete/motmp
cmo/delete/mosurf1
cmo/delete/mosurf2
cmo/list
# Read tet mesh from Step 2
read/avs/ 02_tet_mesh.inp / mo_tet
cmo/select/mo_tet
interpolate/map/mo_tet/ itetclr /1,0,0/ mo_mat itetclr
interpolate/voronoi/mo_tet/ imt /1,0,0/ mo_mat imt
# check interpolated values
cmo/printatt/mo_tet/imt minmax
cmo/printatt/mo_tet/itetclr minmax
# Set boundary nodes and write view file
resetpts/itp
dump/avs/tet_interp_materials.inp mo_tet
# -----------------------------------------------------------
# Report Material Quantities
# Report minmax for node and element materials
cmo/select/mo_tet
cmo/printatt/mo_tet/ imt minmax
cmo/printatt/mo_tet/ itetclr minmax
# Report element volumes by material
quality/ volume / material
# Report node imt quantities
# These are what FEHM will use
dump/zone_imt/ tet / mo_tet
# Report node voronoi volume totals by node material
# First add attribute vorvol, then report sums
cmo addatt/mo_tet/vor_volume/vorvol
pset/p1/attribute/imt/1,0,0/ eq 1
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 2
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 3
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 4
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
finish

View File

@@ -0,0 +1,157 @@
# Tutorial LaGriT Introduction
# Step 3. Assign Materials to the Tet Mesh
# Using commands pset, regions, and interpolation
define IN_FILE 02_tet_mesh.inp
define OUT_FILE tet_colors.inp
define IN_FILE 01_hex_mesh.inp
define OUT_FILE hex_colors.inp
# Read the IN_FILE to color materials
read/avs/ IN_FILE / mo_mat
cmo/status/mo_mat/ brief
cmo/select/mo_mat
# -----------------------------------------------------------
# Assign materials by Selected sets
# define some elevations for layers between Z= 0 and 80
define MAT1_Ztop 40.
define MAT2_Ztop 62.
# SELECT NODE SETS based on attribute zic (Z coordinate)
pset/pmat1/attribute zic/1,0,0/ lt MAT1_Ztop
pset/pmat2/attribute zic/1,0,0/ lt MAT2_Ztop
pset/pmat3/attribute zic/1,0,0/ ge MAT2_Ztop
# SET NODE IMT in order such that last overwrites previous
# layer 2 overwrites layer 3, layer 1 overwrites layer 2
cmo/setatt/mo_mat/imt/ pset,get,pmat3 / 3
cmo/setatt/mo_mat/imt/ pset,get,pmat2 / 2
cmo/setatt/mo_mat/imt/ pset,get,pmat1 / 1
# SELECT ELEMENT SETS based on point sets
# Use inclusive for any node of element is in set
eltset/emat1/inclusive/pset,get,pmat1
eltset/emat2/inclusive/pset,get,pmat2
eltset/emat3/inclusive/pset,get,pmat3
# SET ELEMENT ITETCLR in order
cmo/setatt/mo_mat/itetclr/eltset,get,emat3/ 3
cmo/setatt/mo_mat/itetclr/eltset,get,emat2/ 2
cmo/setatt/mo_mat/itetclr/eltset,get,emat1/ 1
# write a temporary file to view colors so far
dump/ tmp_layers.inp / mo_mat
# -----------------------------------------------------------
# Assign materials by Surfaces and Regions
# Create surfaces to define a fourth material
cmo / create / motmp
cmo / select / motmp
# Create a quad mesh based on corner coordinates
# The surface must be equal or larger than the mesh domain
quadxy / 10 5 /-1. -1. 10. /100.1 -1. 100./ &
100.1 51. 100./ -1. 51. 10.
createpts/brick/xyz/ 10 5 1 /1,0,0/connect
hextotet/4/ mosurf1 / motmp
cmo / printatt / mosurf1 / -xyz- / minmax
dump/ tmp_surf1.inp / mosurf1
# Create a second surface offset from first
offsetsurf/ mosurf2 / mosurf1 / 15.
dump/ tmp_surf2.inp / mosurf2
# Define mesh objects as surfaces for geometry
# Make mesh current so geometry is assigned to it
cmo / select / mo_mat
surface / s_mosurf1 / reflect / sheet / mosurf1
surface / s_mosurf2 / reflect / sheet / mosurf2
# Define region between the surfaces
region/ r_slant / ge s_mosurf1 and le s_mosurf2
# Select node and element sets in the slanted region
pset/ pslant / region / r_slant
eltset/ eslant / region / r_slant
# SET element and node materials
cmo/ setatt / mo_mat / imt / pset,get,pslant / 4
cmo/ setatt / mo_mat / itetclr / eltset,get,eslant / 4
# set boundary and interface nodes
resetpts/itp
dump / OUT_FILE / mo_mat
cmo / status / mo_mat / brief
# uncomment Early finish to check results
# finish
# -----------------------------------------------------------
# Assign materials by Interpolation
# This will preserve the stair-step interfaces of materials
# remove unneeded mesh objects
cmo/delete/motmp
cmo/delete/mosurf1
cmo/delete/mosurf2
cmo/list
# Read tet mesh from Step 2
read/avs/ 02_tet_mesh.inp / mo_tet
cmo/select/mo_tet
interpolate/map/mo_tet/ itetclr /1,0,0/ mo_mat itetclr
interpolate/voronoi/mo_tet/ imt /1,0,0/ mo_mat imt
# check interpolated values
cmo/printatt/mo_tet/imt minmax
cmo/printatt/mo_tet/itetclr minmax
# Set boundary nodes and write view file
resetpts/itp
dump/avs/tet_interp_materials.inp mo_tet
# -----------------------------------------------------------
# Report Material Quantities
# Report minmax for node and element materials
cmo/select/mo_tet
cmo/printatt/mo_tet/ imt minmax
cmo/printatt/mo_tet/ itetclr minmax
# Report element volumes by material
quality/ volume / material
# Report node imt quantities
# These are what FEHM will use
dump/zone_imt/ tet / mo_tet
# Report node voronoi volume totals by node material
# First add attribute vorvol, then report sums
cmo addatt/mo_tet/vor_volume/vorvol
pset/p1/attribute/imt/1,0,0/ eq 1
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 2
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 3
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/ eq 4
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
finish

View File

@@ -0,0 +1,583 @@
* * * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * Program: LaGriT V3.3.4 Linux *
* * Compiler Name: GNU *
* * Compiler Version: 9.4.0 *
* * Date Compile: 2024/05/06 *
* * Run Time: 2025/Jan 28 17:40:45 *
* * Manual: https://lagrit.lanl.gov *
* * *
* * * * * * * * * * * * * * * * * * * * * * * * *
-----oOo-----
LaGriT V3 LA-CC-15-069 https://github.com/lanl/LaGriT
Copyright 2016. Triad National Security, LLC. All rights reserved. This
program was produced under U.S. Government contract 89233218CNA000001
for Los Alamos National Laboratory (LANL), which is operated by Triad
National Security, LLC for the U.S. Department of Energy/National Nuclear
Security Administration. All rights in the program are reserved by Triad
National Security, LLC, and the U.S. Department of Energy/National Nuclear
Security Administration. The Government is granted for itself and others
acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license
in this material to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit others to
do so. This software is open source and available under the BSD-3 License.
-----oOo-----
Output log file: lagrit.out
Command log file: lagrit.log
# LaGriT Tutorial Example 3
# Assign materials based on methods pset, regions, and interpolation
define IN_FILE 02_tet_mesh.inp
define OUT_FILE tet_colors.inp
define IN_FILE 01_hex_mesh.inp
define OUT_FILE hex_colors.inp
# Read the IN_FILE to color materials
read/avs/IN_FILE/mo_mat
geniee
finish
cmo/status/brief
The current-mesh-object(CMO) is: mo_mat
1 Mesh Object name: mo_mat
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
finish
cmo/status/mo_mat/brief
The current-mesh-object(CMO) is: mo_mat
1 Mesh Object name: mo_mat
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
cmo/select/mo_mat
# -----------------------------------------------------------
# Assign materials by Selected sets
# define some elevations for layers between Z= 0 and 80
define MAT1_Ztop 40.
define MAT2_Ztop 62.
# SELECT NODE SETS based on attribute zic (Z coordinate)
pset/pmat1/attribute zic/1,0,0/lt MAT1_Ztop
THE PSET pmat1 HAS 528 POINTS
pset/pmat2/attribute zic/1,0,0/lt MAT2_Ztop
THE PSET pmat2 HAS 858 POINTS
pset/pmat3/attribute zic/1,0,0/ge MAT2_Ztop
THE PSET pmat3 HAS 264 POINTS
# SET NODE IMT in order such that last overwrites previous
# layer 2 overwrites layer 3, layer 1 overwrites layer 2
cmo/setatt/mo_mat/imt/pset,get,pmat3/3
264 values reset for attribute imt1
cmo/setatt/mo_mat/imt/pset,get,pmat2/2
858 values reset for attribute imt1
cmo/setatt/mo_mat/imt/pset,get,pmat1/1
528 values reset for attribute imt1
# SELECT ELEMENT SETS based on point sets
# Use inclusive for any node of element is in set
eltset/emat1/inclusive/pset,get,pmat1
THE ELTSET emat1 HAS 400 ELEMENTS
eltset/emat2/inclusive/pset,get,pmat2
THE ELTSET emat2 HAS 650 ELEMENTS
eltset/emat3/inclusive/pset,get,pmat3
THE ELTSET emat3 HAS 200 ELEMENTS
# SET ELEMENT ITETCLR in order
cmo/setatt/mo_mat/itetclr/eltset,get,emat3/3
200 values reset for attribute itetclr
cmo/setatt/mo_mat/itetclr/eltset,get,emat2/2
650 values reset for attribute itetclr
cmo/setatt/mo_mat/itetclr/eltset,get,emat1/1
400 values reset for attribute itetclr
# write a temporary file to view colors so far
dump/tmp_layers.inp/mo_mat
dump/avs/tmp_layers.inp/mo_mat
cmo/modatt/-def-/-def-/ioflag/x
finish
finish
# -----------------------------------------------------------
# Assign materials by Surfaces and Regions
# Create surfaces to define a fourth material
cmo/create/motmp
cmo/select/motmp
# Create a quad mesh based on corner coordinates
# The surface must be equal or larger than the mesh domain
quadxy/10 5/-1. -1. 10./100.1 -1. 100./100.1 51. 100./-1. 51. 10.
QUADXY GENERATED POINTS 1 TO 50
createpts/brick/xyz/10 5 1/1,0,0/connect
Number of nodes: 50
Number of elements: 36
Number of negative volume elements: 0
Total volume: 0.703850494352E+04
hextotet/4/mosurf1/motmp
iremove_vol= 0 iremove_dup= 0 icheckpt= 1
Input Mesh type qua using option 4
Element Material ID, min/max/range: 1 1 0
Epsilon-dist, distmax, distmin: -1.5039540E-05 2.2618778E+02 1.6900000E+02
Epsilon-volume, volmax: 1.9551403E-04 1.9551403E+02
cmo/addatt/mosurf1/iign/vint/scalar/nnodes/-def-/-def-/gx/-def-
finish
WARNING: Volumes le zero not removed, nelements= 144
No duplicate points
WARNING: Duplicate points not removed, nnodes = 86
cmo/printatt/mosurf1/-xyz-/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
xic -1.000000000E+00 1.001000000E+02 1.011000000E+02 86
yic -1.000000000E+00 5.100000000E+01 5.200000000E+01 86
zic 1.000000000E+01 1.000000000E+02 9.000000000E+01 86
dump/tmp_surf1.inp/mosurf1
dump/avs/tmp_surf1.inp/mosurf1
cmo/modatt/-def-/-def-/ioflag/x
finish
finish
# Create a second surface offset from first
offsetsurf/mosurf2/mosurf1/15.
dump/tmp_surf2.inp/mosurf2
dump/avs/tmp_surf2.inp/mosurf2
cmo/modatt/-def-/-def-/ioflag/x
finish
finish
# Define mesh objects as surfaces for geometry
# Make mesh current so geometry is assigned to it
cmo/select/mo_mat
surface/s_mosurf1/reflect/sheet/mosurf1
cmo/addatt//v2/INT/scalar/scalar/constant/permanent//2.0
finish
cmo/addatt//linkt/VINT/v2/nelements//permanent/x/0.0
finish
cmo/addatt//v12/INT/scalar/scalar/constant/permanent//12.0
finish
cmo/addatt//sbox/VDOUBLE/v12/nelements/linear/permanent/x/0.0
finish
log/tty/off
finish
cmo/DELATT/s_mosurf1 isetwd
finish
cmo/DELATT/s_mosurf1 ialias
finish
cmo/DELATT/s_mosurf1 imt1
finish
cmo/DELATT/s_mosurf1 itp1
finish
cmo/DELATT/s_mosurf1 icr1
finish
cmo/DELATT/s_mosurf1 isn1
finish
cmo/DELATT/s_mosurf1 xtetwd
finish
cmo/DELATT/s_mosurf1 itetclr
finish
log/tty/on
finish
cmo/addatt//ncon50/INT/scalar/scalar/constant/permanent/l/0
finish
cmo/addatt//nconbnd/INT/scalar/scalar/constant/permanent/l/0
finish
cmo/addatt//icontab/VINT/scalar/ncon50/constant/permanent/l/0.0
finish
surface/s_mosurf2/reflect/sheet/mosurf2
cmo/addatt//v2/INT/scalar/scalar/constant/permanent//2.0
finish
cmo/addatt//linkt/VINT/v2/nelements//permanent/x/0.0
finish
cmo/addatt//v12/INT/scalar/scalar/constant/permanent//12.0
finish
cmo/addatt//sbox/VDOUBLE/v12/nelements/linear/permanent/x/0.0
finish
log/tty/off
finish
cmo/DELATT/s_mosurf2 isetwd
finish
cmo/DELATT/s_mosurf2 ialias
finish
cmo/DELATT/s_mosurf2 imt1
finish
cmo/DELATT/s_mosurf2 itp1
finish
cmo/DELATT/s_mosurf2 icr1
finish
cmo/DELATT/s_mosurf2 isn1
finish
cmo/DELATT/s_mosurf2 xtetwd
finish
cmo/DELATT/s_mosurf2 itetclr
finish
log/tty/on
finish
# Define region between the surfaces
region/r_slant/ge s_mosurf1 and le s_mosurf2
# Select node and element sets in the slanted region
pset/pslant/region/r_slant
THE PSET pslant HAS 180 POINTS
eltset/eslant/region/r_slant
THE ELTSET eslant HAS 130 ELEMENTS
# SET element and node materials
cmo/setatt/mo_mat/imt/pset,get,pslant/4
180 values reset for attribute imt1
cmo/setatt/mo_mat/itetclr/eltset,get,eslant/4
130 values reset for attribute itetclr
# set boundary and interface nodes
resetpts/itp
geniee
finish
dump/OUT_FILE/mo_mat
dump/avs/hex_colors.inp/mo_mat
cmo/modatt/-def-/-def-/ioflag/x
finish
finish
cmo/status/mo_mat/brief
The current-mesh-object(CMO) is: mo_mat
1 Mesh Object name: mo_mat
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = active
# uncomment Early finish to check results
# finish
# -----------------------------------------------------------
# Assign materials by Interpolation
# This will preserve the stair-step interfaces of materials
# remove unneeded mesh objects
cmo/delete/motmp
Released Mesh Object: motmp
cmo/delete/mosurf1
Released Mesh Object: mosurf1
cmo/delete/mosurf2
Released Mesh Object: mosurf2
cmo/list
The current-mesh-object(CMO) is: mo_mat
0 Mesh Object name: -default-
1 Mesh Object name: mo_mat
2 Mesh Object name: s_mosurf1
3 Mesh Object name: s_mosurf2
# Read tet mesh from Step 2
read/avs/02_tet_mesh.inp/mo_tet
geniee
finish
cmo/status/brief
The current-mesh-object(CMO) is: mo_tet
1 Mesh Object name: mo_mat
number of nodes = 1122 number of elements = 800
dimensions geometry = 3 element type = hex
dimensions topology = 3 8 nodes 6 faces 12 edges
boundary flag = 16000000 status = inactive
2 Mesh Object name: s_mosurf1
number of nodes = 86 number of elements = 144
dimensions geometry = 3 element type = tri
dimensions topology = 2 3 nodes 3 faces 3 edges
boundary flag = 16000000 status = inactive
3 Mesh Object name: s_mosurf2
number of nodes = 86 number of elements = 144
dimensions geometry = 3 element type = tri
dimensions topology = 2 3 nodes 3 faces 3 edges
boundary flag = 16000000 status = inactive
4 Mesh Object name: mo_tet
number of nodes = 1122 number of elements = 4800
dimensions geometry = 3 element type = tet
dimensions topology = 3 4 nodes 4 faces 6 edges
boundary flag = 16000000 status = active
finish
cmo/select/mo_tet
interpolate/map/mo_tet/itetclr/1,0,0/mo_mat itetclr
elements in indexed set = 4800
INTRP METHOD: map FUNCTION: user
TIEBREAKER: maxtie FLAG: plus1 0.500000000000E+01
cmo select mo_mat
finish
cmo kdtree build
cmo/addatt//v2/INT/scalar/scalar/constant/temporary//2.0
finish
cmo/addatt//linkt/VINT/v2/nelements//temporary/x/0.0
finish
cmo/addatt//v12/INT/scalar/scalar/constant/temporary//12.0
finish
cmo/addatt//sbox/VDOUBLE/v12/nelements/linear/temporary/x/0.0
finish
finish
cmo setatt mo_mat idebug/0
1 values reset for attribute idebug
finish
Build kdtree done - assign the enclosing element for each.
Sink point Elems Searched Elements Found Percent Done
1201 1201 1201 25 %
2401 2401 2401 50 %
3601 3601 3601 75 %
4800 4800 4800 100%
Total Source Elements: 800
Total Sink Centroids: 4800
interpolate/map done.
cmo select mo_tet
finish
cmo kdtree release
cmo/DELATT/mo_mat/sbox
finish
cmo/DELATT/mo_mat/v12
finish
cmo/DELATT/mo_mat/linkt
finish
cmo/DELATT/mo_mat/v2
finish
finish
interpolate/voronoi/mo_tet/imt/1,0,0/mo_mat imt
nodes in indexed point set = 1122
INTRP METHOD: voronoi FUNCTION: max
TIEBREAKER: maxtie FLAG: plus1 0.500000000000E+01
Build kdtree0 done - assign nearest node for each.
Sink point Points Searched Points Found Percent Done
282 282 282 25 %
563 563 563 50 %
844 844 844 75 %
1122 1122 1122 100%
Total Source Nodes: 1122
Total Sink Nodes: 1122
interpolate/voronoi done.
cmo select mo_tet
finish
cmo kdtree release
finish
# check interpolated values
cmo/printatt/mo_tet/imt minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
cmo/printatt/mo_tet/itetclr minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
itetclr 1 4 3 4800
# Set boundary nodes and write view file
resetpts/itp
geniee
finish
dump/avs/tet_interp_materials.inp mo_tet
cmo/modatt/-def-/-def-/ioflag/x
finish
# -----------------------------------------------------------
# Report Material Quantities
# Report minmax for node and element materials
cmo/select/mo_tet
cmo/printatt/mo_tet/imt minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
cmo/printatt/mo_tet/itetclr minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
itetclr 1 4 3 4800
# Report element volumes by material
quality/volume/material
QUALITY TOTALS for 4 MATERIALS:
...........................................................
eltset/-etmp-/itetclr/eq/1/
THE ELTSET -etmp- HAS 2160 ELEMENTS
finish
epsilonvol: 8.8817842E-08
---------------------------------------
VOLUMES for ELEMENT COLOR 1
...........................
All elements have volume 8.3333333E+01
eltset/-etmp-/delete/
ELTSET -etmp- DELETED
finish
eltset/-etmp-/itetclr/eq/2/
THE ELTSET -etmp- HAS 1140 ELEMENTS
finish
---------------------------------------
VOLUMES for ELEMENT COLOR 2
...........................
All elements have volume 8.3333333E+01
eltset/-etmp-/delete/
ELTSET -etmp- DELETED
finish
eltset/-etmp-/itetclr/eq/3/
THE ELTSET -etmp- HAS 720 ELEMENTS
finish
---------------------------------------
VOLUMES for ELEMENT COLOR 3
...........................
All elements have volume 8.3333333E+01
eltset/-etmp-/delete/
ELTSET -etmp- DELETED
finish
eltset/-etmp-/itetclr/eq/4/
THE ELTSET -etmp- HAS 780 ELEMENTS
finish
---------------------------------------
VOLUMES for ELEMENT COLOR 4
...........................
All elements have volume 8.3333333E+01
eltset/-etmp-/delete/
ELTSET -etmp- DELETED
finish
---------------------------------------
SUMMARY VOLUME/AREA of ELEMENT COLORS for mo_tet 1 4
...........................................................
Color Num. Elements Volume Fractional Volume
1 2160 0.1800000E+06 0.450000000
2 1140 0.9500000E+05 0.237500000
3 720 0.6000000E+05 0.150000000
4 780 0.6500000E+05 0.162500000
Total elements: 4800 Total Volume: 0.4000000E+06
-----------------------------------------------------------
4800 total elements evaluated.
# Report node imt quantities
# These are what FEHM will use
dump/zone_imt/tet/mo_tet
*********dump_material_lists********
Minimum material ID value = 1
Maximum material ID value = 4
Total possible materials = 4
Material 1 has 468 nodes. #nodes/nnodes is 0.417112290859
Material 2 has 270 nodes. #nodes/nnodes is 0.240641713142
Material 3 has 204 nodes. #nodes/nnodes is 0.181818187237
Material 4 has 180 nodes. #nodes/nnodes is 0.160427808762
# Report node voronoi volume totals by node material
# First add attribute vorvol, then report sums
cmo addatt/mo_tet/vor_volume/vorvol
ADDATT/voronoi_volume: creating new attribute: vorvol
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 = 1122 ncoefs = 7144
AMatbld3d_stor: Number of unique coefs = 4133
AMatbld3d_stor: Maximum num. connections to a node = 7
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
AMatbld3d_stor: Total Volume: 4.0000000E+05
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
AMatbld3d_stor: abs(Aij/xij) max = 2.0000000E+01
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
AMatbld3d_stor: (Aij/xij) min = -2.0000000E+01
AMatbld3d_stor Matrix coefficient values stored as scalar area/distance
AMatbld3d_stor Matrix compression used for graph, not coefficient values
mo_tet attribute with voronoi volumes created with name vorvol
*** SPARSE COEFFICIENT MATRIX _gstor SUCCESSFUL ***
3D Matrix Coefficient file written with name -notset-
pset/p1/attribute/imt/1,0,0/eq 1
THE PSET p1 HAS 468 POINTS
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
nodes in indexed point set = 468
sink attribute being created: cmo = mo_tet att = vol_tot
cmo/addatt/mo_tet/vol_tot/REAL/scalar/scalar/constant/permanent/
finish
468 values summed from attribute vorvol
vorvol sum = 0.167500000000E+06
cmo select mo_tet
finish
pset/p1/attribute/imt/1,0,0/eq 2
THE PSET p1 HAS 270 POINTS
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
nodes in indexed point set = 270
270 values summed from attribute vorvol
vorvol sum = 0.100000000000E+06
cmo select mo_tet
finish
pset/p1/attribute/imt/1,0,0/eq 3
THE PSET p1 HAS 204 POINTS
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
nodes in indexed point set = 204
204 values summed from attribute vorvol
vorvol sum = 0.650000000000E+05
cmo select mo_tet
finish
pset/p1/attribute/imt/1,0,0/eq 4
THE PSET p1 HAS 180 POINTS
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
nodes in indexed point set = 180
180 values summed from attribute vorvol
vorvol sum = 0.675000000000E+05
cmo select mo_tet
finish
finish
LaGriT successfully completed

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,69 @@
define IN_FILE 02_tet_mesh.inp
define OUT_FILE tet_colors.inp
define IN_FILE 01_hex_mesh.inp
define OUT_FILE hex_colors.inp
read/avs/IN_FILE/mo_mat
cmo/status/mo_mat/brief
cmo/select/mo_mat
define MAT1_Ztop 40.
define MAT2_Ztop 62.
pset/pmat1/attribute zic/1,0,0/lt MAT1_Ztop
pset/pmat2/attribute zic/1,0,0/lt MAT2_Ztop
pset/pmat3/attribute zic/1,0,0/ge MAT2_Ztop
cmo/setatt/mo_mat/imt/pset,get,pmat3/3
cmo/setatt/mo_mat/imt/pset,get,pmat2/2
cmo/setatt/mo_mat/imt/pset,get,pmat1/1
eltset/emat1/inclusive/pset,get,pmat1
eltset/emat2/inclusive/pset,get,pmat2
eltset/emat3/inclusive/pset,get,pmat3
cmo/setatt/mo_mat/itetclr/eltset,get,emat3/3
cmo/setatt/mo_mat/itetclr/eltset,get,emat2/2
cmo/setatt/mo_mat/itetclr/eltset,get,emat1/1
dump/tmp_layers.inp/mo_mat
cmo/create/motmp
cmo/select/motmp
quadxy/10 5/-1. -1. 10./100.1 -1. 100./100.1 51. 100./-1. 51. 10.
createpts/brick/xyz/10 5 1/1,0,0/connect
hextotet/4/mosurf1/motmp
cmo/printatt/mosurf1/-xyz-/minmax
dump/tmp_surf1.inp/mosurf1
offsetsurf/mosurf2/mosurf1/15.
dump/tmp_surf2.inp/mosurf2
cmo/select/mo_mat
surface/s_mosurf1/reflect/sheet/mosurf1
surface/s_mosurf2/reflect/sheet/mosurf2
region/r_slant/ge s_mosurf1 and le s_mosurf2
pset/pslant/region/r_slant
eltset/eslant/region/r_slant
cmo/setatt/mo_mat/imt/pset,get,pslant/4
cmo/setatt/mo_mat/itetclr/eltset,get,eslant/4
resetpts/itp
dump/OUT_FILE/mo_mat
cmo/status/mo_mat/brief
cmo/delete/motmp
cmo/delete/mosurf1
cmo/delete/mosurf2
cmo/list
read/avs/02_tet_mesh.inp/mo_tet
cmo/select/mo_tet
interpolate/map/mo_tet/itetclr/1,0,0/mo_mat itetclr
interpolate/voronoi/mo_tet/imt/1,0,0/mo_mat imt
cmo/printatt/mo_tet/imt minmax
cmo/printatt/mo_tet/itetclr minmax
resetpts/itp
dump/avs/tet_interp_materials.inp mo_tet
cmo/select/mo_tet
cmo/printatt/mo_tet/imt minmax
cmo/printatt/mo_tet/itetclr minmax
quality/volume/material
dump/zone_imt/tet/mo_tet
cmo addatt/mo_tet/vor_volume/vorvol
pset/p1/attribute/imt/1,0,0/eq 1
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/eq 2
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/eq 3
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
pset/p1/attribute/imt/1,0,0/eq 4
math/sum/mo_tet/vol_tot/pset,get,p1/mo_tet/vorvol
finish

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 743 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,128 @@
zone
00001
nnum
468
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150
151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170
171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190
191 192 193 194 195 196 197 198 200 201
202 203 204 205 206 207 208 209 211 212
213 214 215 216 217 218 219 220 222 223
224 225 226 227 228 229 230 231 233 234
235 236 237 238 239 240 241 242 244 245
246 247 248 249 250 251 252 253 255 256
257 258 259 260 261 262 263 264 267 268
269 270 271 272 273 274 275 278 279 280
281 282 283 284 285 286 289 290 291 292
293 294 295 296 297 300 301 302 303 304
305 306 307 308 311 312 313 314 315 316
317 318 319 322 323 324 325 326 327 328
329 330 333 334 335 336 337 338 339 340
341 344 345 346 347 348 349 350 351 352
355 356 357 358 359 360 361 362 363 366
367 368 369 370 371 372 373 374 377 378
379 380 381 382 383 384 385 388 389 390
391 392 393 394 395 396 400 401 402 403
404 405 406 407 411 412 413 414 415 416
417 418 422 423 424 425 426 427 428 429
433 434 435 436 437 438 439 440 444 445
446 447 448 449 450 451 455 456 457 458
459 460 461 462 463 466 467 468 469 470
471 472 473 474 477 478 479 480 481 482
483 484 485 488 489 490 491 492 493 494
495 496 499 500 501 502 503 504 505 506
507 510 511 512 513 514 515 516 517 518
521 522 523 524 525 526 527 528
00002
nnum
270
529 530 533 534 535 536 537 538 539 540
541 544 545 546 547 548 549 550 551 552
555 556 557 558 559 560 561 562 563 566
567 568 569 570 571 572 573 574 577 578
579 580 581 582 583 584 585 588 589 590
591 592 593 594 595 596 599 600 601 602
603 604 605 606 607 610 611 612 613 614
615 616 617 618 621 622 623 624 625 626
627 628 629 632 633 634 635 636 637 638
639 640 643 644 645 646 647 648 649 650
651 654 655 656 657 658 659 660 661 662
663 666 667 668 669 670 671 672 673 674
677 678 679 680 681 682 683 684 685 688
689 690 691 692 693 694 695 696 699 700
701 702 703 704 705 706 707 710 711 712
713 714 715 716 717 718 721 722 723 724
725 726 727 728 729 732 733 734 735 736
737 738 739 740 743 744 745 746 747 748
749 750 751 754 755 756 757 758 759 760
761 762 765 766 767 768 769 770 771 772
773 776 777 778 779 780 781 782 783 784
787 788 789 790 791 792 793 794 795 796
799 800 801 802 803 804 805 806 807 810
811 812 813 814 815 816 817 818 821 822
823 824 825 826 827 828 829 832 833 834
835 836 837 838 839 840 843 844 845 846
847 848 849 850 851 854 855 856 857 858
00003
nnum
204
859 860 861 862 866 867 868 869 870 871
872 873 877 878 879 880 881 882 883 884
888 889 890 891 892 893 894 895 899 900
901 902 903 904 905 906 910 911 912 913
914 915 916 917 921 922 923 924 925 926
927 928 929 932 933 934 935 936 937 938
939 940 943 944 945 946 947 948 949 950
951 954 955 956 957 958 959 960 961 962
965 966 967 968 969 970 971 972 973 976
977 978 979 980 981 982 983 984 987 988
989 990 991 992 993 994 995 999 1000 1001
1002 1003 1004 1005 1006 1010 1011 1012 1013 1014
1015 1016 1017 1021 1022 1023 1024 1025 1026 1027
1028 1032 1033 1034 1035 1036 1037 1038 1039 1043
1044 1045 1046 1047 1048 1049 1050 1054 1055 1056
1057 1058 1059 1060 1061 1062 1065 1066 1067 1068
1069 1070 1071 1072 1073 1076 1077 1078 1079 1080
1081 1082 1083 1084 1087 1088 1089 1090 1091 1092
1093 1094 1095 1098 1099 1100 1101 1102 1103 1104
1105 1106 1109 1110 1111 1112 1113 1114 1115 1116
1117 1120 1121 1122
00004
nnum
180
199 210 221 232 243 254 265 266 276 277
287 288 298 299 309 310 320 321 331 332
342 343 353 354 364 365 375 376 386 387
397 398 399 408 409 410 419 420 421 430
431 432 441 442 443 452 453 454 464 465
475 476 486 487 497 498 508 509 519 520
531 532 542 543 553 554 564 565 575 576
586 587 597 598 608 609 619 620 630 631
641 642 652 653 664 665 675 676 686 687
697 698 708 709 719 720 730 731 741 742
752 753 763 764 774 775 785 786 797 798
808 809 819 820 830 831 841 842 852 853
863 864 865 874 875 876 885 886 887 896
897 898 907 908 909 918 919 920 930 931
941 942 952 953 963 964 974 975 985 986
996 997 998 1007 1008 1009 1018 1019 1020 1029
1030 1031 1040 1041 1042 1051 1052 1053 1063 1064
1074 1075 1085 1086 1096 1097 1107 1108 1118 1119
stop

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,322 @@
86 144 4 0 0
001 -1.000000000000E+00 -1.000000000000E+00 1.000000000000E+01
002 1.023333333333E+01 -1.000000000000E+00 2.000000000000E+01
003 2.146666666667E+01 -1.000000000000E+00 3.000000000000E+01
004 3.270000000000E+01 -1.000000000000E+00 4.000000000000E+01
005 4.393333333333E+01 -1.000000000000E+00 5.000000000000E+01
006 5.516666666667E+01 -1.000000000000E+00 6.000000000000E+01
007 6.640000000000E+01 -1.000000000000E+00 7.000000000000E+01
008 7.763333333333E+01 -1.000000000000E+00 8.000000000000E+01
009 8.886666666667E+01 -1.000000000000E+00 9.000000000000E+01
010 1.001000000000E+02 -1.000000000000E+00 1.000000000000E+02
011 -1.000000000000E+00 1.200000000000E+01 1.000000000000E+01
012 1.023333333333E+01 1.200000000000E+01 2.000000000000E+01
013 2.146666666667E+01 1.200000000000E+01 3.000000000000E+01
014 3.270000000000E+01 1.200000000000E+01 4.000000000000E+01
015 4.393333333333E+01 1.200000000000E+01 5.000000000000E+01
016 5.516666666667E+01 1.200000000000E+01 6.000000000000E+01
017 6.640000000000E+01 1.200000000000E+01 7.000000000000E+01
018 7.763333333333E+01 1.200000000000E+01 8.000000000000E+01
019 8.886666666667E+01 1.200000000000E+01 9.000000000000E+01
020 1.001000000000E+02 1.200000000000E+01 1.000000000000E+02
021 -1.000000000000E+00 2.500000000000E+01 1.000000000000E+01
022 1.023333333333E+01 2.500000000000E+01 2.000000000000E+01
023 2.146666666667E+01 2.500000000000E+01 3.000000000000E+01
024 3.270000000000E+01 2.500000000000E+01 4.000000000000E+01
025 4.393333333333E+01 2.500000000000E+01 5.000000000000E+01
026 5.516666666667E+01 2.500000000000E+01 6.000000000000E+01
027 6.640000000000E+01 2.500000000000E+01 7.000000000000E+01
028 7.763333333333E+01 2.500000000000E+01 8.000000000000E+01
029 8.886666666667E+01 2.500000000000E+01 9.000000000000E+01
030 1.001000000000E+02 2.500000000000E+01 1.000000000000E+02
031 -1.000000000000E+00 3.800000000000E+01 1.000000000000E+01
032 1.023333333333E+01 3.800000000000E+01 2.000000000000E+01
033 2.146666666667E+01 3.800000000000E+01 3.000000000000E+01
034 3.270000000000E+01 3.800000000000E+01 4.000000000000E+01
035 4.393333333333E+01 3.800000000000E+01 5.000000000000E+01
036 5.516666666667E+01 3.800000000000E+01 6.000000000000E+01
037 6.640000000000E+01 3.800000000000E+01 7.000000000000E+01
038 7.763333333333E+01 3.800000000000E+01 8.000000000000E+01
039 8.886666666667E+01 3.800000000000E+01 9.000000000000E+01
040 1.001000000000E+02 3.800000000000E+01 1.000000000000E+02
041 -1.000000000000E+00 5.100000000000E+01 1.000000000000E+01
042 1.023333333333E+01 5.100000000000E+01 2.000000000000E+01
043 2.146666666667E+01 5.100000000000E+01 3.000000000000E+01
044 3.270000000000E+01 5.100000000000E+01 4.000000000000E+01
045 4.393333333333E+01 5.100000000000E+01 5.000000000000E+01
046 5.516666666667E+01 5.100000000000E+01 6.000000000000E+01
047 6.640000000000E+01 5.100000000000E+01 7.000000000000E+01
048 7.763333333333E+01 5.100000000000E+01 8.000000000000E+01
049 8.886666666667E+01 5.100000000000E+01 9.000000000000E+01
050 1.001000000000E+02 5.100000000000E+01 1.000000000000E+02
051 4.616666666667E+00 5.500000000000E+00 1.500000000000E+01
052 1.585000000000E+01 5.500000000000E+00 2.500000000000E+01
053 2.708333333333E+01 5.500000000000E+00 3.500000000000E+01
054 3.831666666667E+01 5.500000000000E+00 4.500000000000E+01
055 4.955000000000E+01 5.500000000000E+00 5.500000000000E+01
056 6.078333333333E+01 5.500000000000E+00 6.500000000000E+01
057 7.201666666667E+01 5.500000000000E+00 7.500000000000E+01
058 8.325000000000E+01 5.500000000000E+00 8.500000000000E+01
059 9.448333333333E+01 5.500000000000E+00 9.500000000000E+01
060 4.616666666667E+00 1.850000000000E+01 1.500000000000E+01
061 1.585000000000E+01 1.850000000000E+01 2.500000000000E+01
062 2.708333333333E+01 1.850000000000E+01 3.500000000000E+01
063 3.831666666667E+01 1.850000000000E+01 4.500000000000E+01
064 4.955000000000E+01 1.850000000000E+01 5.500000000000E+01
065 6.078333333333E+01 1.850000000000E+01 6.500000000000E+01
066 7.201666666667E+01 1.850000000000E+01 7.500000000000E+01
067 8.325000000000E+01 1.850000000000E+01 8.500000000000E+01
068 9.448333333333E+01 1.850000000000E+01 9.500000000000E+01
069 4.616666666667E+00 3.150000000000E+01 1.500000000000E+01
070 1.585000000000E+01 3.150000000000E+01 2.500000000000E+01
071 2.708333333333E+01 3.150000000000E+01 3.500000000000E+01
072 3.831666666667E+01 3.150000000000E+01 4.500000000000E+01
073 4.955000000000E+01 3.150000000000E+01 5.500000000000E+01
074 6.078333333333E+01 3.150000000000E+01 6.500000000000E+01
075 7.201666666667E+01 3.150000000000E+01 7.500000000000E+01
076 8.325000000000E+01 3.150000000000E+01 8.500000000000E+01
077 9.448333333333E+01 3.150000000000E+01 9.500000000000E+01
078 4.616666666667E+00 4.450000000000E+01 1.500000000000E+01
079 1.585000000000E+01 4.450000000000E+01 2.500000000000E+01
080 2.708333333333E+01 4.450000000000E+01 3.500000000000E+01
081 3.831666666667E+01 4.450000000000E+01 4.500000000000E+01
082 4.955000000000E+01 4.450000000000E+01 5.500000000000E+01
083 6.078333333333E+01 4.450000000000E+01 6.500000000000E+01
084 7.201666666667E+01 4.450000000000E+01 7.500000000000E+01
085 8.325000000000E+01 4.450000000000E+01 8.500000000000E+01
086 9.448333333333E+01 4.450000000000E+01 9.500000000000E+01
0001 1 tri 51 1 2
0002 1 tri 51 2 12
0003 1 tri 51 12 11
0004 1 tri 51 11 1
0005 1 tri 52 2 3
0006 1 tri 52 3 13
0007 1 tri 52 13 12
0008 1 tri 52 12 2
0009 1 tri 53 3 4
0010 1 tri 53 4 14
0011 1 tri 53 14 13
0012 1 tri 53 13 3
0013 1 tri 54 4 5
0014 1 tri 54 5 15
0015 1 tri 54 15 14
0016 1 tri 54 14 4
0017 1 tri 55 5 6
0018 1 tri 55 6 16
0019 1 tri 55 16 15
0020 1 tri 55 15 5
0021 1 tri 56 6 7
0022 1 tri 56 7 17
0023 1 tri 56 17 16
0024 1 tri 56 16 6
0025 1 tri 57 7 8
0026 1 tri 57 8 18
0027 1 tri 57 18 17
0028 1 tri 57 17 7
0029 1 tri 58 8 9
0030 1 tri 58 9 19
0031 1 tri 58 19 18
0032 1 tri 58 18 8
0033 1 tri 59 9 10
0034 1 tri 59 10 20
0035 1 tri 59 20 19
0036 1 tri 59 19 9
0037 1 tri 60 11 12
0038 1 tri 60 12 22
0039 1 tri 60 22 21
0040 1 tri 60 21 11
0041 1 tri 61 12 13
0042 1 tri 61 13 23
0043 1 tri 61 23 22
0044 1 tri 61 22 12
0045 1 tri 62 13 14
0046 1 tri 62 14 24
0047 1 tri 62 24 23
0048 1 tri 62 23 13
0049 1 tri 63 14 15
0050 1 tri 63 15 25
0051 1 tri 63 25 24
0052 1 tri 63 24 14
0053 1 tri 64 15 16
0054 1 tri 64 16 26
0055 1 tri 64 26 25
0056 1 tri 64 25 15
0057 1 tri 65 16 17
0058 1 tri 65 17 27
0059 1 tri 65 27 26
0060 1 tri 65 26 16
0061 1 tri 66 17 18
0062 1 tri 66 18 28
0063 1 tri 66 28 27
0064 1 tri 66 27 17
0065 1 tri 67 18 19
0066 1 tri 67 19 29
0067 1 tri 67 29 28
0068 1 tri 67 28 18
0069 1 tri 68 19 20
0070 1 tri 68 20 30
0071 1 tri 68 30 29
0072 1 tri 68 29 19
0073 1 tri 69 21 22
0074 1 tri 69 22 32
0075 1 tri 69 32 31
0076 1 tri 69 31 21
0077 1 tri 70 22 23
0078 1 tri 70 23 33
0079 1 tri 70 33 32
0080 1 tri 70 32 22
0081 1 tri 71 23 24
0082 1 tri 71 24 34
0083 1 tri 71 34 33
0084 1 tri 71 33 23
0085 1 tri 72 24 25
0086 1 tri 72 25 35
0087 1 tri 72 35 34
0088 1 tri 72 34 24
0089 1 tri 73 25 26
0090 1 tri 73 26 36
0091 1 tri 73 36 35
0092 1 tri 73 35 25
0093 1 tri 74 26 27
0094 1 tri 74 27 37
0095 1 tri 74 37 36
0096 1 tri 74 36 26
0097 1 tri 75 27 28
0098 1 tri 75 28 38
0099 1 tri 75 38 37
0100 1 tri 75 37 27
0101 1 tri 76 28 29
0102 1 tri 76 29 39
0103 1 tri 76 39 38
0104 1 tri 76 38 28
0105 1 tri 77 29 30
0106 1 tri 77 30 40
0107 1 tri 77 40 39
0108 1 tri 77 39 29
0109 1 tri 78 31 32
0110 1 tri 78 32 42
0111 1 tri 78 42 41
0112 1 tri 78 41 31
0113 1 tri 79 32 33
0114 1 tri 79 33 43
0115 1 tri 79 43 42
0116 1 tri 79 42 32
0117 1 tri 80 33 34
0118 1 tri 80 34 44
0119 1 tri 80 44 43
0120 1 tri 80 43 33
0121 1 tri 81 34 35
0122 1 tri 81 35 45
0123 1 tri 81 45 44
0124 1 tri 81 44 34
0125 1 tri 82 35 36
0126 1 tri 82 36 46
0127 1 tri 82 46 45
0128 1 tri 82 45 35
0129 1 tri 83 36 37
0130 1 tri 83 37 47
0131 1 tri 83 47 46
0132 1 tri 83 46 36
0133 1 tri 84 37 38
0134 1 tri 84 38 48
0135 1 tri 84 48 47
0136 1 tri 84 47 37
0137 1 tri 85 38 39
0138 1 tri 85 39 49
0139 1 tri 85 49 48
0140 1 tri 85 48 38
0141 1 tri 86 39 40
0142 1 tri 86 40 50
0143 1 tri 86 50 49
0144 1 tri 86 49 39
00004 1 1 1 1
imt1, integer
itp1, integer
icr1, integer
isn1, integer
1 0 10 0 0
2 0 10 0 0
3 0 10 0 0
4 0 10 0 0
5 0 10 0 0
6 0 10 0 0
7 0 10 0 0
8 0 10 0 0
9 0 10 0 0
10 0 10 0 0
11 0 10 0 0
12 0 0 0 0
13 0 0 0 0
14 0 0 0 0
15 0 0 0 0
16 0 0 0 0
17 0 0 0 0
18 0 0 0 0
19 0 0 0 0
20 0 10 0 0
21 0 10 0 0
22 0 0 0 0
23 0 0 0 0
24 0 0 0 0
25 0 0 0 0
26 0 0 0 0
27 0 0 0 0
28 0 0 0 0
29 0 0 0 0
30 0 10 0 0
31 0 10 0 0
32 0 0 0 0
33 0 0 0 0
34 0 0 0 0
35 0 0 0 0
36 0 0 0 0
37 0 0 0 0
38 0 0 0 0
39 0 0 0 0
40 0 10 0 0
41 0 10 0 0
42 0 10 0 0
43 0 10 0 0
44 0 10 0 0
45 0 10 0 0
46 0 10 0 0
47 0 10 0 0
48 0 10 0 0
49 0 10 0 0
50 0 10 0 0
51 0 0 0 0
52 0 0 0 0
53 0 0 0 0
54 0 0 0 0
55 0 0 0 0
56 0 0 0 0
57 0 0 0 0
58 0 0 0 0
59 0 0 0 0
60 0 0 0 0
61 0 0 0 0
62 0 0 0 0
63 0 0 0 0
64 0 0 0 0
65 0 0 0 0
66 0 0 0 0
67 0 0 0 0
68 0 0 0 0
69 0 0 0 0
70 0 0 0 0
71 0 0 0 0
72 0 0 0 0
73 0 0 0 0
74 0 0 0 0
75 0 0 0 0
76 0 0 0 0
77 0 0 0 0
78 0 0 0 0
79 0 0 0 0
80 0 0 0 0
81 0 0 0 0
82 0 0 0 0
83 0 0 0 0
84 0 0 0 0
85 0 0 0 0
86 0 0 0 0

View File

@@ -0,0 +1,322 @@
86 144 4 0 0
001 -1.097370898554E+01 -1.000000000000E+00 2.120379976043E+01
002 2.596243477912E-01 -1.000000000000E+00 3.120379976043E+01
003 1.149295768112E+01 -1.000000000000E+00 4.120379976043E+01
004 2.272629101446E+01 -1.000000000000E+00 5.120379976043E+01
005 3.395962434779E+01 -1.000000000000E+00 6.120379976043E+01
006 4.519295768112E+01 -1.000000000000E+00 7.120379976043E+01
007 5.642629101446E+01 -1.000000000000E+00 8.120379976043E+01
008 6.765962434779E+01 -1.000000000000E+00 9.120379976043E+01
009 7.889295768112E+01 -1.000000000000E+00 1.012037997604E+02
010 9.012629101446E+01 -1.000000000000E+00 1.112037997604E+02
011 -1.097370898554E+01 1.200000000000E+01 2.120379976043E+01
012 2.596243477912E-01 1.200000000000E+01 3.120379976043E+01
013 1.149295768112E+01 1.200000000000E+01 4.120379976043E+01
014 2.272629101446E+01 1.200000000000E+01 5.120379976043E+01
015 3.395962434779E+01 1.200000000000E+01 6.120379976043E+01
016 4.519295768112E+01 1.200000000000E+01 7.120379976043E+01
017 5.642629101446E+01 1.200000000000E+01 8.120379976043E+01
018 6.765962434779E+01 1.200000000000E+01 9.120379976043E+01
019 7.889295768112E+01 1.200000000000E+01 1.012037997604E+02
020 9.012629101446E+01 1.200000000000E+01 1.112037997604E+02
021 -1.097370898554E+01 2.500000000000E+01 2.120379976043E+01
022 2.596243477912E-01 2.500000000000E+01 3.120379976043E+01
023 1.149295768112E+01 2.500000000000E+01 4.120379976043E+01
024 2.272629101446E+01 2.500000000000E+01 5.120379976043E+01
025 3.395962434779E+01 2.500000000000E+01 6.120379976043E+01
026 4.519295768112E+01 2.500000000000E+01 7.120379976043E+01
027 5.642629101446E+01 2.500000000000E+01 8.120379976043E+01
028 6.765962434779E+01 2.500000000000E+01 9.120379976043E+01
029 7.889295768112E+01 2.500000000000E+01 1.012037997604E+02
030 9.012629101446E+01 2.500000000000E+01 1.112037997604E+02
031 -1.097370898554E+01 3.800000000000E+01 2.120379976043E+01
032 2.596243477912E-01 3.800000000000E+01 3.120379976043E+01
033 1.149295768112E+01 3.800000000000E+01 4.120379976043E+01
034 2.272629101446E+01 3.800000000000E+01 5.120379976043E+01
035 3.395962434779E+01 3.800000000000E+01 6.120379976043E+01
036 4.519295768112E+01 3.800000000000E+01 7.120379976043E+01
037 5.642629101446E+01 3.800000000000E+01 8.120379976043E+01
038 6.765962434779E+01 3.800000000000E+01 9.120379976043E+01
039 7.889295768112E+01 3.800000000000E+01 1.012037997604E+02
040 9.012629101446E+01 3.800000000000E+01 1.112037997604E+02
041 -1.097370898554E+01 5.100000000000E+01 2.120379976043E+01
042 2.596243477912E-01 5.100000000000E+01 3.120379976043E+01
043 1.149295768112E+01 5.100000000000E+01 4.120379976043E+01
044 2.272629101446E+01 5.100000000000E+01 5.120379976043E+01
045 3.395962434779E+01 5.100000000000E+01 6.120379976043E+01
046 4.519295768112E+01 5.100000000000E+01 7.120379976043E+01
047 5.642629101446E+01 5.100000000000E+01 8.120379976043E+01
048 6.765962434779E+01 5.100000000000E+01 9.120379976043E+01
049 7.889295768112E+01 5.100000000000E+01 1.012037997604E+02
050 9.012629101446E+01 5.100000000000E+01 1.112037997604E+02
051 -5.357042318876E+00 5.500000000000E+00 2.620379976043E+01
052 5.876291014458E+00 5.500000000000E+00 3.620379976043E+01
053 1.710962434779E+01 5.500000000000E+00 4.620379976043E+01
054 2.834295768112E+01 5.500000000000E+00 5.620379976043E+01
055 3.957629101446E+01 5.500000000000E+00 6.620379976043E+01
056 5.080962434779E+01 5.500000000000E+00 7.620379976043E+01
057 6.204295768112E+01 5.500000000000E+00 8.620379976043E+01
058 7.327629101446E+01 5.500000000000E+00 9.620379976043E+01
059 8.450962434779E+01 5.500000000000E+00 1.062037997604E+02
060 -5.357042318876E+00 1.850000000000E+01 2.620379976043E+01
061 5.876291014458E+00 1.850000000000E+01 3.620379976043E+01
062 1.710962434779E+01 1.850000000000E+01 4.620379976043E+01
063 2.834295768112E+01 1.850000000000E+01 5.620379976043E+01
064 3.957629101446E+01 1.850000000000E+01 6.620379976043E+01
065 5.080962434779E+01 1.850000000000E+01 7.620379976043E+01
066 6.204295768112E+01 1.850000000000E+01 8.620379976043E+01
067 7.327629101446E+01 1.850000000000E+01 9.620379976043E+01
068 8.450962434779E+01 1.850000000000E+01 1.062037997604E+02
069 -5.357042318876E+00 3.150000000000E+01 2.620379976043E+01
070 5.876291014458E+00 3.150000000000E+01 3.620379976043E+01
071 1.710962434779E+01 3.150000000000E+01 4.620379976043E+01
072 2.834295768112E+01 3.150000000000E+01 5.620379976043E+01
073 3.957629101446E+01 3.150000000000E+01 6.620379976043E+01
074 5.080962434779E+01 3.150000000000E+01 7.620379976043E+01
075 6.204295768112E+01 3.150000000000E+01 8.620379976043E+01
076 7.327629101446E+01 3.150000000000E+01 9.620379976043E+01
077 8.450962434779E+01 3.150000000000E+01 1.062037997604E+02
078 -5.357042318876E+00 4.450000000000E+01 2.620379976043E+01
079 5.876291014458E+00 4.450000000000E+01 3.620379976043E+01
080 1.710962434779E+01 4.450000000000E+01 4.620379976043E+01
081 2.834295768112E+01 4.450000000000E+01 5.620379976043E+01
082 3.957629101446E+01 4.450000000000E+01 6.620379976043E+01
083 5.080962434779E+01 4.450000000000E+01 7.620379976043E+01
084 6.204295768112E+01 4.450000000000E+01 8.620379976043E+01
085 7.327629101446E+01 4.450000000000E+01 9.620379976043E+01
086 8.450962434779E+01 4.450000000000E+01 1.062037997604E+02
0001 1 tri 51 1 2
0002 1 tri 51 2 12
0003 1 tri 51 12 11
0004 1 tri 51 11 1
0005 1 tri 52 2 3
0006 1 tri 52 3 13
0007 1 tri 52 13 12
0008 1 tri 52 12 2
0009 1 tri 53 3 4
0010 1 tri 53 4 14
0011 1 tri 53 14 13
0012 1 tri 53 13 3
0013 1 tri 54 4 5
0014 1 tri 54 5 15
0015 1 tri 54 15 14
0016 1 tri 54 14 4
0017 1 tri 55 5 6
0018 1 tri 55 6 16
0019 1 tri 55 16 15
0020 1 tri 55 15 5
0021 1 tri 56 6 7
0022 1 tri 56 7 17
0023 1 tri 56 17 16
0024 1 tri 56 16 6
0025 1 tri 57 7 8
0026 1 tri 57 8 18
0027 1 tri 57 18 17
0028 1 tri 57 17 7
0029 1 tri 58 8 9
0030 1 tri 58 9 19
0031 1 tri 58 19 18
0032 1 tri 58 18 8
0033 1 tri 59 9 10
0034 1 tri 59 10 20
0035 1 tri 59 20 19
0036 1 tri 59 19 9
0037 1 tri 60 11 12
0038 1 tri 60 12 22
0039 1 tri 60 22 21
0040 1 tri 60 21 11
0041 1 tri 61 12 13
0042 1 tri 61 13 23
0043 1 tri 61 23 22
0044 1 tri 61 22 12
0045 1 tri 62 13 14
0046 1 tri 62 14 24
0047 1 tri 62 24 23
0048 1 tri 62 23 13
0049 1 tri 63 14 15
0050 1 tri 63 15 25
0051 1 tri 63 25 24
0052 1 tri 63 24 14
0053 1 tri 64 15 16
0054 1 tri 64 16 26
0055 1 tri 64 26 25
0056 1 tri 64 25 15
0057 1 tri 65 16 17
0058 1 tri 65 17 27
0059 1 tri 65 27 26
0060 1 tri 65 26 16
0061 1 tri 66 17 18
0062 1 tri 66 18 28
0063 1 tri 66 28 27
0064 1 tri 66 27 17
0065 1 tri 67 18 19
0066 1 tri 67 19 29
0067 1 tri 67 29 28
0068 1 tri 67 28 18
0069 1 tri 68 19 20
0070 1 tri 68 20 30
0071 1 tri 68 30 29
0072 1 tri 68 29 19
0073 1 tri 69 21 22
0074 1 tri 69 22 32
0075 1 tri 69 32 31
0076 1 tri 69 31 21
0077 1 tri 70 22 23
0078 1 tri 70 23 33
0079 1 tri 70 33 32
0080 1 tri 70 32 22
0081 1 tri 71 23 24
0082 1 tri 71 24 34
0083 1 tri 71 34 33
0084 1 tri 71 33 23
0085 1 tri 72 24 25
0086 1 tri 72 25 35
0087 1 tri 72 35 34
0088 1 tri 72 34 24
0089 1 tri 73 25 26
0090 1 tri 73 26 36
0091 1 tri 73 36 35
0092 1 tri 73 35 25
0093 1 tri 74 26 27
0094 1 tri 74 27 37
0095 1 tri 74 37 36
0096 1 tri 74 36 26
0097 1 tri 75 27 28
0098 1 tri 75 28 38
0099 1 tri 75 38 37
0100 1 tri 75 37 27
0101 1 tri 76 28 29
0102 1 tri 76 29 39
0103 1 tri 76 39 38
0104 1 tri 76 38 28
0105 1 tri 77 29 30
0106 1 tri 77 30 40
0107 1 tri 77 40 39
0108 1 tri 77 39 29
0109 1 tri 78 31 32
0110 1 tri 78 32 42
0111 1 tri 78 42 41
0112 1 tri 78 41 31
0113 1 tri 79 32 33
0114 1 tri 79 33 43
0115 1 tri 79 43 42
0116 1 tri 79 42 32
0117 1 tri 80 33 34
0118 1 tri 80 34 44
0119 1 tri 80 44 43
0120 1 tri 80 43 33
0121 1 tri 81 34 35
0122 1 tri 81 35 45
0123 1 tri 81 45 44
0124 1 tri 81 44 34
0125 1 tri 82 35 36
0126 1 tri 82 36 46
0127 1 tri 82 46 45
0128 1 tri 82 45 35
0129 1 tri 83 36 37
0130 1 tri 83 37 47
0131 1 tri 83 47 46
0132 1 tri 83 46 36
0133 1 tri 84 37 38
0134 1 tri 84 38 48
0135 1 tri 84 48 47
0136 1 tri 84 47 37
0137 1 tri 85 38 39
0138 1 tri 85 39 49
0139 1 tri 85 49 48
0140 1 tri 85 48 38
0141 1 tri 86 39 40
0142 1 tri 86 40 50
0143 1 tri 86 50 49
0144 1 tri 86 49 39
00004 1 1 1 1
imt1, integer
itp1, integer
icr1, integer
isn1, integer
1 0 10 0 0
2 0 10 0 0
3 0 10 0 0
4 0 10 0 0
5 0 10 0 0
6 0 10 0 0
7 0 10 0 0
8 0 10 0 0
9 0 10 0 0
10 0 10 0 0
11 0 10 0 0
12 0 0 0 0
13 0 0 0 0
14 0 0 0 0
15 0 0 0 0
16 0 0 0 0
17 0 0 0 0
18 0 0 0 0
19 0 0 0 0
20 0 10 0 0
21 0 10 0 0
22 0 0 0 0
23 0 0 0 0
24 0 0 0 0
25 0 0 0 0
26 0 0 0 0
27 0 0 0 0
28 0 0 0 0
29 0 0 0 0
30 0 10 0 0
31 0 10 0 0
32 0 0 0 0
33 0 0 0 0
34 0 0 0 0
35 0 0 0 0
36 0 0 0 0
37 0 0 0 0
38 0 0 0 0
39 0 0 0 0
40 0 10 0 0
41 0 10 0 0
42 0 10 0 0
43 0 10 0 0
44 0 10 0 0
45 0 10 0 0
46 0 10 0 0
47 0 10 0 0
48 0 10 0 0
49 0 10 0 0
50 0 10 0 0
51 0 0 0 0
52 0 0 0 0
53 0 0 0 0
54 0 0 0 0
55 0 0 0 0
56 0 0 0 0
57 0 0 0 0
58 0 0 0 0
59 0 0 0 0
60 0 0 0 0
61 0 0 0 0
62 0 0 0 0
63 0 0 0 0
64 0 0 0 0
65 0 0 0 0
66 0 0 0 0
67 0 0 0 0
68 0 0 0 0
69 0 0 0 0
70 0 0 0 0
71 0 0 0 0
72 0 0 0 0
73 0 0 0 0
74 0 0 0 0
75 0 0 0 0
76 0 0 0 0
77 0 0 0 0
78 0 0 0 0
79 0 0 0 0
80 0 0 0 0
81 0 0 0 0
82 0 0 0 0
83 0 0 0 0
84 0 0 0 0
85 0 0 0 0
86 0 0 0 0

View File

@@ -0,0 +1,314 @@
---
title: Tutorial LaGriT Introduction Step 04
---
# Step 4. Write FEHM Setup Files
<p>
<a href="step_04/04_tet_nodes_imt_well_pts.png"> <img width="500" src="step_04/04_tet_nodes_imt_well_pts.png" /> </a>
</p>
<br>
<!-- End image -->
#### LaGriT command file: [04_fehm_files.lgi](step_04/04_fehm_files.lgi.txt)
#### LaGriT output file: [lagrit.out](step_04/04_fehm_files.out.txt)
#### LaGriT all run files: [Folder step_04](https://github.com/lanl/LaGriT/tree/master/docs/pages/tutorial/lagrit_introduction/step_04)
LaGriT's meshing tools are tailored for geologic applications and Voronoi control volume solvers. Though LaGriT can write files that are of general use, some are specifically designed for the FEHM porous flow and transport code. This example writes model setup files used by FEHM but can be modified for use in other simulators using Voronoi control volumes (FEHM, PFLOTRAN, TOUGH2).
- Use the tetrahedral mesh with materials created in Step 3.
- Use [**`dump/fehm`**](https://lanl.github.io/LaGriT/pages/docs/commands/dump/DUMP3.html) to write 7 model setup files.
- Locate and write a list of nodes representing a vertical well zone.
- View and check the mesh quality and defined zones.
The following model setup files will be written:
- material.zone - node zone lists for each material. Same as [**`dump/zone_imt`**](https://lanl.github.io/LaGriT/pages/docs/commands/DUMP2.html#zone)
- outside.zone - lists of nodes on outside boundaries such as top, bottom, and sides. Same as [**`dump/zone_outside`**](https://lanl.github.io/LaGriT/pages/docs/commands/DUMP2.html#zone)
- outside_vor.area - voronoi areas associated with nodes on outside boundaries
- multi_mat.zone - lists of node pairs connected across material interfaces (multi-material nodes)
- interface.zone - lists of nodes along material interfaces (for multi-material cells seldom used with FEHM)
- .stor - file with voronoi control volumes associated with each node and the sparse matrix structure. Same as [**`dump/stor`**](https://lanl.github.io/LaGriT/pages/docs/commands/DUMP2.html#stor) and described at [**`stor format`**](https://lanl.github.io/LaGriT/pages/docs/STOR_Form.html)
- .fehm - mesh coordinates and geometry in FEHM grid format. Same as [**`dump/coord`**](https://lanl.github.io/LaGriT/pages/docs/commands/DUMP2.html#coord)
## Read the tetrahedral mesh with materials from Example 3
Read the mesh and check for positive volumes and expected node material values. The `quality` command shows all cells with the same volume as expected. The [**`cmo/printatt`**](https://lanl.github.io/LaGriT/pages/docs/commands/cmo/cmo_printatt.html) command is recommended for checking mesh attributes at important steps in the input file. The keyword **minmax** will display the min and max values of mesh attributes for easy confirmation of values. As expected, the node attribute has material values 1 to 4. (Created in [Step 3](../step_03.md)).
Note. You can add a `finish` command after this section and exit early to be sure all is as expected. Then comment out or remove the temporary finish.
```
read / avs / tet_interp_materials.inp / mo_tet
quality
cmo/printatt/mo_tet/imt minmax
```
<pre class="lg-output">
---------------------------------------
All elements have volume 8.3333333E+01
---------------------------------------
4800 total elements evaluated.
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
</pre>
The following commands are almost always used in preparation of writing FEHM model files. They are not always needed but using them will cause no harm. It is good practice to include in case they are needed.
- Set cell colors to 1. FEHM uses properties assigned to the voronoi volumes around the mesh vertices (nodes). Though cell colors are better for images, they are not used in FEHM simulations. It is good practice to set the element attribute **itetclr** to 1. This avoids routines looking for multi-material elements.
- Reset the itp array when materials are changed. This array is important to some routines.
- The [**`resetpts/parent`**](https://lanl.github.io/LaGriT/pages/docs/commands/RESETPT.html) command will remove the parent-child relationship is established in the settets command.
- Sometimes during the meshing process there will be duplicate or double-defined nodes created. Use the `filter` command to find and tag nodes as `dudded`.
- IMPORTANT: Nodes tagged for removal will not be deleted from the mesh object until `rmpoint/compress` is called. This will remove any dudded nodes and adjust the connectivity.
```
cmo/select/mo_tet
cmo/setatt/mo_tet itetclr 1
resetpts/itp
cmo/select/mo_tet
resetpts/parent
filter/1,0,0
rmpoint/compress
```
## Write default FEHM files
By default, all 7 FEHM files are written with rootname "tet".
```
dump/fehm/ tet /mo_tet/ keepatt
dump/avs/tet_fehm.inp/mo_tet
```
Note: We normally do not use multiple material regions for FEHM so the `interface.zone` will be empty. (If itetclr=1 and resetpts/itp was called). If the node imt materials are a single value, the `multi_mat.zone` will also be empty.
<pre class="lg-output">
-rw-rw-r-- 1 tamiller sft 372523 Apr 2 18:29 step_04/tet.fehmn
-rw-rw-r-- 1 tamiller sft 203060 Apr 2 18:29 step_04/tet.stor
-rw-rw-r-- 1 tamiller sft 12486 Apr 2 18:29 step_04/tet_material.zone
-rw-rw-r-- 1 tamiller sft 8067 Apr 2 18:29 step_04/tet_outside.zone
-rw-rw-r-- 1 tamiller sft 45739 Apr 2 18:29 step_04/tet_outside_vor.area
-rw-rw-r-- 1 tamiller sft 32600 Apr 2 18:29 step_04/tet_multi_mat.zone
-rw-rw-r-- 1 tamiller sft 0 Apr 2 18:28 step_04/tet_interface.zone
</pre>
The `_material.zone` file contains zones listing node ids for each integer value found in the mesh **imt** attribute. This is a single file separated by id, "nnum" and total for each list. See right image below.
The **keepatt** keyword will keep attributes normally deleted after writing files. The 6 outside attribute names are added to the mesh object with the names and integer id based on normal directions:
- 1 = top = top = positive z direction (0,0,1)
- 2 = bottom = bottom = negative z direction (0,0,-1)
- 3 = left_w = left or west = negative x direction (-1,0,0)
- 4 = front_s = front or south = negative y direction (0,-1,0)
- 5 = right_e = right or east = positive x direction (1,0,0)
- 6 = back_n = back or north = positive y direction (0,1,0)
Note: A node can occur in multiple zones. For instance, a node located on a top corner of the mesh can be found in zones for top, front_s, and left_w. See left image below.
<p> Paraview images showing mesh node attributes <b>w_left</b> mesh boundary (left) and node <b>imt</b> materials (right) <br>
<a href="step_04/04_tet_nodes_left_w.png"> <img width="400" src="step_04/04_tet_nodes_left_w.png" /> </a>
<a href="step_04/04_tet_nodes_imt.png"> <img width="400" src="step_04/04_tet_nodes_imt.png" /> </a>
</p>
<br>
The output from the `dump/fehm` command generates output that is useful for checking the final mesh and to share in reports.
The following is a table reporting the node count for each material. In this case the bottom layer material 1 has the most nodes and the fault material 4 has the fewest as expected.
<pre class="lg-output">
*********dump_material_lists********
Minimum material ID value = 1
Maximum material ID value = 4
Total possible materials = 4
Material 1 has 468 nodes. #nodes/nnodes is 0.417112290859
Material 2 has 270 nodes. #nodes/nnodes is 0.240641713142
Material 3 has 204 nodes. #nodes/nnodes is 0.181818187237
Material 4 has 180 nodes. #nodes/nnodes is 0.160427808762
</pre>
The routine `AMatbld3d_stor` generates a report summary regarding the voronoi volumes and number of coefficients.
<pre class="lg-output">
AMatbld3d_stor: *****Zero Negative Coefficients ******
AMatbld3d_stor: Number of 'zero' (< compress_eps) coefs 0
AMatbld3d_stor: npoints = 1122 ncoefs = 7144
AMatbld3d_stor: Number of unique coefs = 6
AMatbld3d_stor: Maximum num. connections to a node = 7
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
</pre>
Negative coefficients can occur on non-convex boundaries or with unstructured complex meshes. If they occur, these negative coefficients are stored in a node attribute named `ccoef`. Viewing this attribute can provide help in finding areas of the mesh that need adjustment. It is possible that a mesh has ccoef values at or very close to zero, in which case they can be ignored. The following pset commands can help find ccoef values of concern.
Note. The `cmo/addatt` command is called but will not be used if the `AMatbld3d_stor` routine creates it. We create it just in case it does not exist so the commands using it do not fail with an Error.
```
cmo/addatt/mo_tet/ccoef/VDOUBLE/scalar/nnodes/linear/
cmo select mo_tet
pset pin attribute itp 1,0,0 lt 10
pset pneg attribute ccoef 1,0,0 lt -.0001
pset pBAD inter pin pneg
cmo printatt mo_tet ccoef minmax
cmo printatt mo_tet -all- minmax
```
## Create zone file for vertical well
Zones for simulations can be created and written by using the `pset` commands. In this example a single column of nodes is selected to represent a well. There are numerous ways to create a set, in this example we use a geometric region in box shape. A cylinder would also work.
Regions are defined by surfaces, here we use a box surface around the node column at 50,10 X,Y. The region is defined as an inside the box surface but can be combined with other surfaces for more complex regions. A pset is formed of all points within the `r_bx` region and written to a zone file.
Write the list of nodes to a zone file
Assign a zone number larger than max material
```
cmo select mo_tet
surface / s_box / reflect / box / 49.5 19.5 -1. / 50.5 20.5 100.
region/ r_box / le s_box
pset/pwell/ region / r_box
# check extents of the well nodes
cmo/printatt/mo_tet/-xyz/ minmax/ pset,get,pwell
pset/pwell/ zone / tet_well_nodes.zone / ascii / 11
```
There should be 13 nodes found within the region. Check the xyz extents to see that one column is selected at the intended elevations.
<pre class="lg-output">
THE PSET pwell HAS 13 POINTS
cmo/printatt/mo_tet/-xyz-/minmax/pset,get,pwell
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
xic 5.000000000E+01 5.000000000E+01 0.000000000E+00 1122
yic 2.000000000E+01 2.000000000E+01 0.000000000E+00 1122
zic 2.000000000E+01 8.000000000E+01 6.000000000E+01 1122
</pre>
## Add Mesh Attributes for Mesh Views
When inspecting the mesh and to create informative figures, it helps to add attributes. For this example, a node attribute named **iwell** is created and assigned the value 11. The elevation is nice to see and is created by copying the **zic** attribute to a new attribute named **elev**.
```
cmo/addatt/mo_tet iwell/VINT/scalar/nnodes/linear/permanent//0
cmo/setatt/mo_tet/ iwell /pset,get,pwell/ 11
cmo/printatt/mo_tet/ iwell/ minmax
cmo/addatt/mo_tet elev/VDOUBLE/scalar/nnodes/
cmo/copyatt/ mo_tet mo_tet / elev zic
cmo/set_id/mo_tet/node/ id_node
dump/avs/tet_attributes.inp/ mo_tet
cmo/printatt/mo_tet/-all- minmax
cmo/status/mo_tet
```
The command `cmo/printatt` is used with the **minmax** keyword to check attributes and values in the mesh object. In this example, added attributes include the 6 boundary directions, iwell, elev, and id_node.
<pre class="lg-output">
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
-def- 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
scalar 1 1 0 1
vector 3 3 0 1
nnodes 1122 1122 0 1
nedges 0 0 0 1
nfaces 0 0 0 1
nelements 4800 4800 0 1
...
imt1 1 4 3 1122
itp1 0 10 10 1122
icr1 0 0 0 1122
isn1 0 0 0 1122
xic 0.000000000E+00 1.000000000E+02 1.000000000E+02 1122
yic 0.000000000E+00 5.000000000E+01 5.000000000E+01 1122
zic 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
itetclr 1 1 0 4800
...
top -5 1 6 1122
bottom -5 2 7 1122
left_w -5 3 8 1122
right_e -5 5 10 1122
back_n -5 6 11 1122
front_s -5 4 9 1122
ccoef 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
ncon50 2500 2500 0 1
nconbnd 1 1 0 1
icontab 0 2 2 2500
iwell 0 11 11 1122
elev 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
id_node 1 1122 1121 1122
</pre>
## Check Well Zone
It can be difficult to view mesh nodes within a mesh, it helps to write the points as a separate view file. The mesh nodes (without elements) are copied to a `motmp` mesh object which has all nodes removed except the well nodes. These can be written to any file format, but the AVS UCD pnt type is recognized by Paraview for easier point displays. This is part of the `dump/avs` options that can be set after the mesh object name.
These options are provided to enable a user the flexibility of writing ASCII files with desired information. For this example, "1 3 1 0 0" means 1= nodes are written, 3 = elements are written of type "pnt", 1 = node attributes are written, 0 = cell attributes are not written, and 0 = model attributes are not written.
```
cmo/create/motmp
copypts/motmp/mo_tet
cmo/select/motmp
pset/pduds/attribute iwell/1,0,0/ ne 11
rmpoint/pset,get,pduds
rmpoint/compress
dump/avs/tet_well_pnts.inp/ motmp / 1 3 1 0 0
cmo/printatt/motmp/-all- minmax
```
These Paraview images show the mesh clipped to the well (left) and the well nodes (right). Check the well nodes are located correctly with respect to the mesh materials. Use Paraview to Query a well node to check attributes such as **imt** material and **elev**. Note when the well points are subset from the full mesh, the node ID changes but the attribute **node_id** has the original mesh node ID saved.
<p>
<a href="step_04/04_tet_nodes_imt_well_pts.png"> <img width="400" src="step_04/04_tet_nodes_imt_well_pts.png" /> </a>
<a href="step_04/04_well_nodes_paraview.png"> <img width="450" src="step_04/04_well_nodes_paraview.png" /> </a>
</p>
## finish
Always end a session or a file with the **finish** command.
```
finish
```
## Snapshots of Paraview Sessions
This snapshot of the Paraview session shows settings for viewing the clipped mesh and well points.
<p>
<a href="step_04/04_mesh_clip_well_paraview.png"> <img width="400" src="step_04/04_mesh_clip_well_paraview.png" /> </a>
</p>
<br>
## finish
Always end a session or a file with the **finish** command and a line return after the finish command. The command line parser will not parse a command without a line return.
```
finish
```
#### [LaGriT Introduction Index](index.html)
#### [Step 1. Create a Hex Mesh](step_01.html)
#### [Step 2. Convert Hex Mesh to Tet Mesh](step_02.html)
#### [Step 3. Assign materials to the Mesh](step_03.html)
#### [Step 4. Write Mesh and FEHM Setup Files](step_04.html)

View File

@@ -0,0 +1,100 @@
# Tutorial LaGriT Introduction
# Step 4. Write Mesh and FEHM setup files
# Uses commands dump/fehm and pset write
# -----------------------------------------
# Read tet mesh with materials from Example 3
read / avs / tet_interp_materials.inp / mo_tet
# -----------------------------------------
# Check there are no negative volumes
# Check node materials are defined as expected
quality
cmo/printatt/mo_tet/imt minmax
# -----------------------------------------
# FEHM does not use element materials
# Set to 1 avoids algorithms using multi-material elements
# Materials are changed so reset itp to be safe
cmo/select/mo_tet
cmo/setatt/mo_tet itetclr 1
resetpts/itp
# Remove double-defined nodes and duplicates
# Good practice to include these commands with final mesh
# Nothing will happen if not needed
cmo/select/mo_tet
resetpts/parent
filter/1,0,0
rmpoint/compress
# -----------------------------------------
# Write default FEHM files
dump/fehm/ tet /mo_tet/ keepatt
# Write AVS file with attributes created for FEHM files
dump/avs/tet_fehm.inp/mo_tet
# CHECK for neg ccoefs in the interior mesh
cmo/addatt/mo_tet/ccoef/VDOUBLE/scalar/nnodes/linear/
cmo select mo_tet
pset pin attribute itp 1,0,0 lt 10
pset pneg attribute ccoef 1,0,0 lt -.0001
pset pBAD inter pin pneg
cmo printatt mo_tet ccoef minmax
cmo printatt mo_tet -all- minmax
# -----------------------------------------
# Create zone file for vertical well
# Use region defined by box surface
# vertical column at 50x 20y end at 20z
# surfaces and regions are assigned to current mesh object
# make sure the one you want is selected
cmo/select/mo_tet
surface / s_box / reflect / box / 49.5 19.5 19. / 50.5 20.5 100.
region/ r_box / le s_box
pset/pwell/ region / r_box
# check extents of the well nodes
cmo/printatt/mo_tet/-xyz-/ minmax/ pset,get,pwell
# Write the list of nodes to a zone file
# Assign a zone number larger than max material
pset/pwell/ zone / tet_well_nodes.zone / ascii / 11
# -----------------------------------------
# Add mesh object attributes for mesh views
cmo/addatt/mo_tet iwell/VINT/scalar/nnodes/linear/permanent//0
cmo/setatt/mo_tet/ iwell /pset,get,pwell/ 11
cmo/printatt/mo_tet/ iwell/ minmax
# Add elevation attribute for mesh views
cmo/addatt/mo_tet elev/VDOUBLE/scalar/nnodes/
cmo/copyatt/ mo_tet mo_tet / elev zic
# save node id to node attributes for visual checks
cmo/set_id/mo_tet/node/ id_node
# Write the final tet mesh with all attributes
dump/avs/tet_attributes.inp/ mo_tet
cmo/printatt/mo_tet/-all- minmax
cmo/status/mo_tet
# Create a mesh object with just nodes
# Remove all nodes not in the well zone
cmo/create/motmp
copypts/motmp/mo_tet
cmo/select/motmp
pset/pduds/attribute iwell/1,0,0/ ne 11
rmpoint/pset,get,pduds
rmpoint/compress
# Write well nodes with all attributes
# Use AVS UCD pnt format for paraview
dump/avs/tet_well_pnts.inp/ motmp / 1 3 1 0 0
cmo/printatt/motmp/-all- minmax
finish

View File

@@ -0,0 +1,100 @@
# Tutorial LaGriT Introduction
# Step 4. Write Mesh and FEHM setup files
# Uses commands dump/fehm and pset write
# -----------------------------------------
# Read tet mesh with materials from Example 3
read / avs / tet_interp_materials.inp / mo_tet
# -----------------------------------------
# Check there are no negative volumes
# Check node materials are defined as expected
quality
cmo/printatt/mo_tet/imt minmax
# -----------------------------------------
# FEHM does not use element materials
# Set to 1 avoids algorithms using multi-material elements
# Materials are changed so reset itp to be safe
cmo/select/mo_tet
cmo/setatt/mo_tet itetclr 1
resetpts/itp
# Remove double-defined nodes and duplicates
# Good practice to include these commands with final mesh
# Nothing will happen if not needed
cmo/select/mo_tet
resetpts/parent
filter/1,0,0
rmpoint/compress
# -----------------------------------------
# Write default FEHM files
dump/fehm/ tet /mo_tet/ keepatt
# Write AVS file with attributes created for FEHM files
dump/avs/tet_fehm.inp/mo_tet
# CHECK for neg ccoefs in the interior mesh
cmo/addatt/mo_tet/ccoef/VDOUBLE/scalar/nnodes/linear/
cmo select mo_tet
pset pin attribute itp 1,0,0 lt 10
pset pneg attribute ccoef 1,0,0 lt -.0001
pset pBAD inter pin pneg
cmo printatt mo_tet ccoef minmax
cmo printatt mo_tet -all- minmax
# -----------------------------------------
# Create zone file for vertical well
# Use region defined by box surface
# vertical column at 50x 20y end at 20z
# surfaces and regions are assigned to current mesh object
# make sure the one you want is selected
cmo/select/mo_tet
surface / s_box / reflect / box / 49.5 19.5 19. / 50.5 20.5 100.
region/ r_box / le s_box
pset/pwell/ region / r_box
# check extents of the well nodes
cmo/printatt/mo_tet/-xyz-/ minmax/ pset,get,pwell
# Write the list of nodes to a zone file
# Assign a zone number larger than max material
pset/pwell/ zone / tet_well_nodes.zone / ascii / 11
# -----------------------------------------
# Add mesh object attributes for mesh views
cmo/addatt/mo_tet iwell/VINT/scalar/nnodes/linear/permanent//0
cmo/setatt/mo_tet/ iwell /pset,get,pwell/ 11
cmo/printatt/mo_tet/ iwell/ minmax
# Add elevation attribute for mesh views
cmo/addatt/mo_tet elev/VDOUBLE/scalar/nnodes/
cmo/copyatt/ mo_tet mo_tet / elev zic
# save node id to node attributes for visual checks
cmo/set_id/mo_tet/node/ id_node
# Write the final tet mesh with all attributes
dump/avs/tet_attributes.inp/ mo_tet
cmo/printatt/mo_tet/-all- minmax
cmo/status/mo_tet
# Create a mesh object with just nodes
# Remove all nodes not in the well zone
cmo/create/motmp
copypts/motmp/mo_tet
cmo/select/motmp
pset/pduds/attribute iwell/1,0,0/ ne 11
rmpoint/pset,get,pduds
rmpoint/compress
# Write well nodes with all attributes
# Use AVS UCD pnt format for paraview
dump/avs/tet_well_pnts.inp/ motmp / 1 3 1 0 0
cmo/printatt/motmp/-all- minmax
finish

View File

@@ -0,0 +1,590 @@
* * * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * Program: LaGriT V3.3.4 Linux *
* * Compiler Name: GNU *
* * Compiler Version: 9.4.0 *
* * Date Compile: 2024/05/06 *
* * Run Time: 2025/Apr 3 10:49:56 *
* * Manual: https://lagrit.lanl.gov *
* * *
* * * * * * * * * * * * * * * * * * * * * * * * *
-----oOo-----
LaGriT V3 LA-CC-15-069 https://github.com/lanl/LaGriT
Copyright 2016. Triad National Security, LLC. All rights reserved. This
program was produced under U.S. Government contract 89233218CNA000001
for Los Alamos National Laboratory (LANL), which is operated by Triad
National Security, LLC for the U.S. Department of Energy/National Nuclear
Security Administration. All rights in the program are reserved by Triad
National Security, LLC, and the U.S. Department of Energy/National Nuclear
Security Administration. The Government is granted for itself and others
acting on its behalf a nonexclusive, paid-up, irrevocable worldwide license
in this material to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit others to
do so. This software is open source and available under the BSD-3 License.
-----oOo-----
Output log file: lagrit.out
Command log file: lagrit.log
# Tutorial LaGriT Introduction
# Step 4. Write Mesh and FEHM setup files
# Uses commands dump/fehm and pset write
# -----------------------------------------
# Read tet mesh with materials from Example 3
read/avs/tet_interp_materials.inp/mo_tet
geniee
finish
cmo/status/brief
The current-mesh-object(CMO) is: mo_tet
1 Mesh Object name: mo_tet
number of nodes = 1122 number of elements = 4800
dimensions geometry = 3 element type = tet
dimensions topology = 3 4 nodes 4 faces 6 edges
boundary flag = 16000000 status = active
finish
# -----------------------------------------
# Check there are no negative volumes
# Check node materials are defined as expected
quality
epsilonl, epsilonaspect: 3.0526086E-11 2.8445488E-32
--------------------------------------------
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 : 0
elements with aspect ratio b/w .2 and .5 : 926
elements with aspect ratio b/w .5 and 1. : 3874
min aspect ratio = 0.4483E+00 max aspect ratio = 0.6202E+00
epsilonvol: 8.8817842E-08
---------------------------------------
All elements have volume 8.3333333E+01
-----------------------------------------------------------
4800 total elements evaluated.
cmo/printatt/mo_tet/imt minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
imt1 1 4 3 1122
# -----------------------------------------
# FEHM does not use element materials
# Set to 1 avoids algorithms using multi-material elements
# Materials are changed so reset itp to be safe
cmo/select/mo_tet
cmo/setatt/mo_tet itetclr 1
4800 values reset for attribute itetclr
resetpts/itp
geniee
finish
# Remove double-defined nodes and duplicates
# Good practice to include these commands with final mesh
# Nothing will happen if not needed
cmo/select/mo_tet
resetpts/parent
filter/1,0,0
FILTER:Use internal epsilonl value = 0.305260862918E-10
FILTER:Dudding duplicate points: 0
rmpoint/compress
0 points removed and 0 elements removed.
RMPOINT: new point count is 1122
RMPOINT: new element count is 4800
# -----------------------------------------
# Write default FEHM files
dump/fehm/tet/mo_tet/keepatt
*** Write FEHMN GEOM AND ZONE FILES ***
*********dump_material_lists********
Minimum material ID value = 1
Maximum material ID value = 4
Total possible materials = 4
Material 1 has 468 nodes. #nodes/nnodes is 0.417112290859
Material 2 has 270 nodes. #nodes/nnodes is 0.240641713142
Material 3 has 204 nodes. #nodes/nnodes is 0.181818187237
Material 4 has 180 nodes. #nodes/nnodes is 0.160427808762
*********dump_interface_list********
*********dump_multi_material_list********
Material 1 has 351 multi-material connections.
Material 2 has 626 multi-material connections.
Material 3 has 357 multi-material connections.
Material 4 has 688 multi-material connections.
log/tty/off
finish
*********dump_outside_list********
Voronoi Areas used for outside faces.
assign_quadrant_id epsilon for zero: 1.0000000E-15
cmo/addatt/mo_tet/top/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face top 1 has 66 nodes.
top Sum Voronoi Area_x Area_y Area_z
0.2500000E+03 0.5000000E+03 0.5000000E+04
cmo/addatt/mo_tet/bottom/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face bottom 2 has 66 nodes.
bottom Sum Voronoi Area_x Area_y Area_z
0.2500000E+03 0.5000000E+03 0.5000000E+04
cmo/addatt/mo_tet/left_w/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face left_w 3 has 102 nodes.
left_w Sum Voronoi Area_x Area_y Area_z
0.4000000E+04 0.8000000E+03 0.5000000E+03
cmo/addatt/mo_tet/right_e/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face right_e 5 has 102 nodes.
right_e Sum Voronoi Area_x Area_y Area_z
0.4000000E+04 0.8000000E+03 0.5000000E+03
cmo/addatt/mo_tet/back_n/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face back_n 6 has 187 nodes.
back_n Sum Voronoi Area_x Area_y Area_z
0.8000000E+03 0.8000000E+04 0.1000000E+04
cmo/addatt/mo_tet/front_s/vint/scalar/nnodes/linear/permanent/afgx/-5.0/
finish
Face front_s 4 has 187 nodes.
front_s Sum Voronoi Area_x Area_y Area_z
0.8000000E+03 0.8000000E+04 0.1000000E+04
log/tty/on
finish
*********dump_parent_list********
*** 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 = 1122 ncoefs = 7144
AMatbld3d_stor: Number of unique coefs = 6
AMatbld3d_stor: Maximum num. connections to a node = 7
AMatbld3d_stor: Volume min = 6.2500000E+01
AMatbld3d_stor: Volume max = 5.0000000E+02
AMatbld3d_stor: Total Volume: 4.0000000E+05
AMatbld3d_stor: abs(Aij/xij) min = 0.0000000E+00
AMatbld3d_stor: abs(Aij/xij) max = 2.0000000E+01
AMatbld3d_stor: (Aij/xij) max = 0.0000000E+00
AMatbld3d_stor: (Aij/xij) min = -2.0000000E+01
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 tet.stor
*** SPARSE COEFFICIENT MATRIX _astor SUCCESSFUL ***
3D Matrix Coefficient file written with name tet.stor
# Write AVS file with attributes created for FEHM files
dump/avs/tet_fehm.inp/mo_tet
cmo/modatt/-def-/-def-/ioflag/x
finish
# CHECK for neg ccoefs in the interior mesh
cmo/addatt/mo_tet/ccoef/VDOUBLE/scalar/nnodes/linear/
cmo select mo_tet
pset pin attribute itp 1,0,0 lt 10
THE PSET pin HAS 540 POINTS
pset pneg attribute ccoef 1,0,0 lt -.0001
THE PSET pneg HAS 0 POINTS
pset pBAD inter pin pneg
THE PSET pBAD HAS 0 POINTS
cmo printatt mo_tet ccoef minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
ccoef 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
cmo printatt mo_tet -all- minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
-def- 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
scalar 1 1 0 1
vector 3 3 0 1
nnodes 1122 1122 0 1
nedges 0 0 0 1
nfaces 0 0 0 1
nelements 4800 4800 0 1
mbndry 16000000 16000000 0 1
ndimensions_topo 3 3 0 1
ndimensions_geom 3 3 0 1
nodes_per_element 4 4 0 1
edges_per_element 6 6 0 1
faces_per_element 4 4 0 1
isetwd 0 1 1 1122
ialias 0 0 0 1122
imt1 1 4 3 1122
itp1 0 10 10 1122
icr1 0 0 0 1122
isn1 0 0 0 1122
xic 0.000000000E+00 1.000000000E+02 1.000000000E+02 1122
yic 0.000000000E+00 5.000000000E+01 5.000000000E+01 1122
zic 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
xtetwd 0 0 0 4800
itetclr 1 1 0 4800
itettyp 5 5 0 4800
itetoff 0 19196 19196 4800
jtetoff 0 19196 19196 4800
itet 1 1122 1121 4800x4
jtet 1 16000000 15999999 4800x4
epsilon 1.000000004E-15 1.000000004E-15 0.000000000E+00 1
epsilonl 3.052608629E-11 3.052608629E-11 0.000000000E+00 1
epsilona 4.196643033E-09 4.196643033E-09 0.000000000E+00 1
epsilonv 8.881784197E-08 8.881784197E-08 0.000000000E+00 1
ipointi 1 1 0 1
ipointj 1122 1122 0 1
idebug 0 0 0 1
itypconv_sm 1 1 0 1
maxiter_sm 25 25 0 1
tolconv_sm 1.000000000E+00 1.000000000E+00 0.000000000E+00 1
nnfreq 1 1 0 1
ivoronoi 1 1 0 1
iopt2to2 2 2 0 1
xmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
ymin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
zmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
xmax 1.000000000E+02 1.000000000E+02 0.000000000E+00 1
ymax 5.000000000E+01 5.000000000E+01 0.000000000E+00 1
zmax 8.000000000E+01 8.000000000E+01 0.000000000E+00 1
kdtree_level 0 0 0 1
max_number_sets 64 64 0 1
number_of_psets 3 3 0 1
number_of_eltsets 0 0 0 1
number_of_fsets 0 0 0 1
top -5 1 6 1122
bottom -5 2 7 1122
left_w -5 3 8 1122
right_e -5 5 10 1122
back_n -5 6 11 1122
front_s -5 4 9 1122
ccoef 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
# -----------------------------------------
# Create zone file for vertical well
# Use region defined by box surface
# vertical column at 50x 20y end at 20z
# surfaces and regions are assigned to current mesh object
# make sure the one you want is selected
cmo/select/mo_tet
surface/s_box/reflect/box/49.5 19.5 19./50.5 20.5 100.
cmo/addatt//ncon50/INT/scalar/scalar/constant/permanent/l/0
finish
cmo/addatt//nconbnd/INT/scalar/scalar/constant/permanent/l/0
finish
cmo/addatt//icontab/VINT/scalar/ncon50/constant/permanent/l/0.0
finish
region/r_box/le s_box
pset/pwell/region/r_box
THE PSET pwell HAS 13 POINTS
# check extents of the well nodes
cmo/printatt/mo_tet/-xyz-/minmax/pset,get,pwell
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
xic 5.000000000E+01 5.000000000E+01 0.000000000E+00 1122
yic 2.000000000E+01 2.000000000E+01 0.000000000E+00 1122
zic 2.000000000E+01 8.000000000E+01 6.000000000E+01 1122
# Write the list of nodes to a zone file
# Assign a zone number larger than max material
pset/pwell/zone/tet_well_nodes.zone/ascii/11
PSET: THERE ARE 4 PSETS DEFINED
pin pneg pBAD pwell
PSET: OUTPUT pwell 1 PSETS TO FILE
# -----------------------------------------
# Add mesh object attributes for mesh views
cmo/addatt/mo_tet iwell/VINT/scalar/nnodes/linear/permanent//0
cmo/setatt/mo_tet/iwell/pset,get,pwell/11
13 values reset for attribute iwell
cmo/printatt/mo_tet/iwell/minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
iwell 0 11 11 1122
# Add elevation attribute for mesh views
cmo/addatt/mo_tet elev/VDOUBLE/scalar/nnodes/
cmo/copyatt/mo_tet mo_tet/elev zic
1122 copied from mo_tet zic to -> mo_tet elev
# save node id to node attributes for visual checks
cmo/set_id/mo_tet/node/id_node
cmo/addatt/mo_tet id_node/VINT/scalar/nnodes/linear/permanent//0
finish
# Write the final tet mesh with all attributes
dump/avs/tet_attributes.inp/mo_tet
cmo/modatt/-def-/-def-/ioflag/x
finish
cmo/printatt/mo_tet/-all- minmax
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
-def- 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
scalar 1 1 0 1
vector 3 3 0 1
nnodes 1122 1122 0 1
nedges 0 0 0 1
nfaces 0 0 0 1
nelements 4800 4800 0 1
mbndry 16000000 16000000 0 1
ndimensions_topo 3 3 0 1
ndimensions_geom 3 3 0 1
nodes_per_element 4 4 0 1
edges_per_element 6 6 0 1
faces_per_element 4 4 0 1
isetwd 0 9 9 1122
ialias 0 0 0 1122
imt1 1 4 3 1122
itp1 0 10 10 1122
icr1 0 0 0 1122
isn1 0 0 0 1122
xic 0.000000000E+00 1.000000000E+02 1.000000000E+02 1122
yic 0.000000000E+00 5.000000000E+01 5.000000000E+01 1122
zic 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
xtetwd 0 0 0 4800
itetclr 1 1 0 4800
itettyp 5 5 0 4800
itetoff 0 19196 19196 4800
jtetoff 0 19196 19196 4800
itet 1 1122 1121 4800x4
jtet 1 16000000 15999999 4800x4
epsilon 1.000000004E-15 1.000000004E-15 0.000000000E+00 1
epsilonl 3.052608629E-11 3.052608629E-11 0.000000000E+00 1
epsilona 4.196643033E-09 4.196643033E-09 0.000000000E+00 1
epsilonv 8.881784197E-08 8.881784197E-08 0.000000000E+00 1
ipointi 1 1 0 1
ipointj 1122 1122 0 1
idebug 0 0 0 1
itypconv_sm 1 1 0 1
maxiter_sm 25 25 0 1
tolconv_sm 1.000000000E+00 1.000000000E+00 0.000000000E+00 1
nnfreq 1 1 0 1
ivoronoi 1 1 0 1
iopt2to2 2 2 0 1
xmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
ymin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
zmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
xmax 1.000000000E+02 1.000000000E+02 0.000000000E+00 1
ymax 5.000000000E+01 5.000000000E+01 0.000000000E+00 1
zmax 8.000000000E+01 8.000000000E+01 0.000000000E+00 1
kdtree_level 0 0 0 1
max_number_sets 64 64 0 1
number_of_psets 4 4 0 1
number_of_eltsets 0 0 0 1
number_of_fsets 0 0 0 1
top -5 1 6 1122
bottom -5 2 7 1122
left_w -5 3 8 1122
right_e -5 5 10 1122
back_n -5 6 11 1122
front_s -5 4 9 1122
ccoef 0.000000000E+00 0.000000000E+00 0.000000000E+00 1122
ncon50 2500 2500 0 1
nconbnd 1 1 0 1
icontab 0 2 2 2500
iwell 0 11 11 1122
elev 0.000000000E+00 8.000000000E+01 8.000000000E+01 1122
id_node 1 1122 1121 1122
cmo/status/mo_tet
The current-mesh-object(CMO) is: mo_tet
1 Mesh Object name: mo_tet
number of nodes = 1122 number of elements = 4800
dimensions geometry = 3 element type = tet
dimensions topology = 3 4 nodes 4 faces 6 edges
boundary flag = 16000000 status = active
NAME TYPE RANK LENGTH INTER PERSI IO VALUE
1 -def- VDOU scalar nnodes linea tempo x 0.000E+00
2 scalar INT scalar scalar const perma l 1.000E+00
3 vector INT scalar scalar const perma l 3.000E+00
4 nnodes INT scalar scalar const perma l 1.122E+03
5 nedges INT scalar scalar const perma l 0.000E+00
6 nfaces INT scalar scalar const perma l 0.000E+00
7 nelements INT scalar scalar const perma l 4.800E+03
8 mbndry INT scalar scalar const perma l 1.600E+07
9 ndimensions_top INT scalar scalar const perma l 3.000E+00
10 ndimensions_geo INT scalar scalar const perma l 3.000E+00
11 nodes_per_eleme INT scalar scalar const perma l 4.000E+00
12 edges_per_eleme INT scalar scalar const perma l 6.000E+00
13 faces_per_eleme INT scalar scalar const perma l 4.000E+00
14 isetwd VDOU scalar nnodes or perma l 0.000E+00
15 ialias VINT scalar nnodes seque perma l 0.000E+00
16 imt1 VINT scalar nnodes max perma gal 0.000E+00
17 itp1 VINT scalar nnodes min perma gal 0.000E+00
18 icr1 VINT scalar nnodes min perma gal 0.000E+00
19 isn1 VINT scalar nnodes user perma gal 0.000E+00
20 xic VDOU scalar nnodes linea perma l 0.000E+00
21 yic VDOU scalar nnodes linea perma l 0.000E+00
22 zic VDOU scalar nnodes linea perma l 0.000E+00
23 xtetwd VDOU scalar nelements or perma l 0.000E+00
24 itetclr VINT scalar nelements user perma l 0.000E+00
25 itettyp VINT scalar nelements user perma l 0.000E+00
26 itetoff VINT scalar nelements user perma l 0.000E+00
27 jtetoff VINT scalar nelements user perma l 0.000E+00
28 itet VINT nodes_per_ nelements user perma l 0.000E+00
29 jtet VINT faces_per_ nelements user perma l 0.000E+00
30 ipolydat CHAR scalar scalar const perma l no
31 vor2d CHAR scalar scalar const perma l yes
32 vor3d CHAR scalar scalar const perma l no
33 epsilon REAL scalar scalar const perma l 1.000E-15
34 epsilonl REAL scalar scalar const perma l 3.053E-11
35 epsilona REAL scalar scalar const perma l 4.197E-09
36 epsilonv REAL scalar scalar const perma l 8.882E-08
37 ipointi INT scalar scalar const perma l 1.000E+00
38 ipointj INT scalar scalar const perma l 1.122E+03
39 idebug INT scalar scalar const perma l 0.000E+00
40 itypconv_sm INT scalar scalar const perma l 1.000E+00
41 maxiter_sm INT scalar scalar const perma l 2.500E+01
42 tolconv_sm REAL scalar scalar const perma l 1.000E+00
43 nnfreq INT scalar scalar const perma l 1.000E+00
44 ivoronoi INT scalar scalar const perma l 1.000E+00
45 iopt2to2 INT scalar scalar const perma l 2.000E+00
46 dumptype CHAR scalar scalar const perma l binary
47 velname CHAR scalar scalar const perma l vels
48 densname CHAR scalar scalar const perma l ric
49 presname CHAR scalar scalar const perma l pic
50 enername CHAR scalar scalar const perma l eic
51 xmin REAL scalar scalar const perma l 0.000E+00
52 ymin REAL scalar scalar const perma l 0.000E+00
53 zmin REAL scalar scalar const perma l 0.000E+00
54 xmax REAL scalar scalar const perma l 1.000E+02
55 ymax REAL scalar scalar const perma l 5.000E+01
56 zmax REAL scalar scalar const perma l 8.000E+01
57 kdtree_level INT scalar scalar const perma l 0.000E+00
58 max_number_sets INT scalar scalar const perma l 6.400E+01
59 number_of_psets INT scalar scalar const perma l 4.000E+00
60 number_of_eltse INT scalar scalar const perma l 0.000E+00
61 psetnames VCHA scalar max_number_sets const perma l
62 eltsetnames VCHA scalar max_number_sets const perma l
63 geom_name CHAR scalar max_number_sets const perma l -defaultge
64 fsetnames VCHA scalar max_number_sets const perma l
65 number_of_fsets INT scalar scalar const perma l 0.000E+00
66 top VINT scalar nnodes linea perma afg -5.000E+00
67 bottom VINT scalar nnodes linea perma afg -5.000E+00
68 left_w VINT scalar nnodes linea perma afg -5.000E+00
69 right_e VINT scalar nnodes linea perma afg -5.000E+00
70 back_n VINT scalar nnodes linea perma afg -5.000E+00
71 front_s VINT scalar nnodes linea perma afg -5.000E+00
72 ccoef VDOU scalar nnodes linea tempo agl 0.000E+00
73 ncon50 INT scalar scalar const perma l 2.500E+03
74 nconbnd INT scalar scalar const perma l 1.000E+00
75 icontab VINT scalar ncon50 const perma l 0.000E+00
76 iwell VINT scalar nnodes linea perma agl 0.000E+00
77 elev VDOU scalar nnodes linea tempo agl 0.000E+00
78 id_node VINT scalar nnodes linea perma agl 0.000E+00
# Create a mesh object with just nodes
# Remove all nodes not in the well zone
cmo/create/motmp
copypts/motmp/mo_tet
cmo/addatt/motmp/top/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/bottom/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/left_w/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/right_e/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/back_n/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/front_s/VINT/scalar/nnodes/linear/permanent/afgx/0.0
finish
cmo/addatt/motmp/ccoef/VDOUBLE/scalar/nnodes/linear/temporary/agltn/0.0
finish
cmo/addatt/motmp/iwell/VINT/scalar/nnodes/linear/permanent/agltn/0.0
finish
cmo/addatt/motmp/elev/VDOUBLE/scalar/nnodes/linear/temporary/agltn/0.0
finish
cmo/addatt/motmp/id_node/VINT/scalar/nnodes/linear/permanent/agltn/0.0
finish
copypts added nodes 1 to 1122
cmo/select/motmp
pset/pduds/attribute iwell/1,0,0/ne 11
THE PSET pduds HAS 1109 POINTS
rmpoint/pset,get,pduds
Dudded 1109 points plus parents, there are no elements in mesh.
rmpoint/compress
1109 points removed and 0 elements removed.
RMPOINT: new point count is 13
RMPOINT: new element count is 0
# Write well nodes with all attributes
# Use AVS UCD pnt format for paraview
dump/avs/tet_well_pnts.inp/motmp/1 3 1 0 0
Writing AVS UCD PT ELEMENTS.
cmo/modatt/-def-/-def-/ioflag/x
finish
cmo/printatt/motmp/-all- minmax
Warning: nelements = 0
ATTRIBUTE NAME MIN MAX DIFFERENCE LENGTH
-def- 0.000000000E+00 0.000000000E+00 0.000000000E+00 13
scalar 1 1 0 1
vector 3 3 0 1
nnodes 13 13 0 1
nedges 0 0 0 1
nfaces 0 0 0 1
nelements 0 0 0 1
mbndry 16000000 16000000 0 1
ndimensions_topo 3 3 0 1
ndimensions_geom 3 3 0 1
nodes_per_element 4 4 0 1
edges_per_element 6 6 0 1
faces_per_element 4 4 0 1
isetwd 8 8 0 13
ialias 0 0 0 13
imt1 1 4 3 13
itp1 0 10 10 13
icr1 0 0 0 13
isn1 0 0 0 13
xic 5.000000000E+01 5.000000000E+01 0.000000000E+00 13
yic 2.000000000E+01 2.000000000E+01 0.000000000E+00 13
zic 2.000000000E+01 8.000000000E+01 6.000000000E+01 13
0 length attribute: xtetwd
0 length attribute: itetclr
0 length attribute: itettyp
0 length attribute: itetoff
0 length attribute: jtetoff
0 length attribute: itet
0 length attribute: jtet
epsilon 1.000000004E-15 1.000000004E-15 0.000000000E+00 1
epsilonl 3.052608629E-11 3.052608629E-11 0.000000000E+00 1
epsilona 4.196643033E-09 4.196643033E-09 0.000000000E+00 1
epsilonv 8.881784197E-08 8.881784197E-08 0.000000000E+00 1
ipointi 1 1 0 1
ipointj 13 13 0 1
idebug 0 0 0 1
itypconv_sm 1 1 0 1
maxiter_sm 25 25 0 1
tolconv_sm 1.000000000E+00 1.000000000E+00 0.000000000E+00 1
nnfreq 1 1 0 1
ivoronoi 1 1 0 1
iopt2to2 2 2 0 1
xmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
ymin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
zmin 0.000000000E+00 0.000000000E+00 0.000000000E+00 1
xmax 1.000000000E+02 1.000000000E+02 0.000000000E+00 1
ymax 5.000000000E+01 5.000000000E+01 0.000000000E+00 1
zmax 8.000000000E+01 8.000000000E+01 0.000000000E+00 1
kdtree_level 0 0 0 1
max_number_sets 64 64 0 1
number_of_psets 1 1 0 1
number_of_eltsets 0 0 0 1
number_of_fsets 0 0 0 1
top -5 1 6 13
bottom -5 -5 0 13
left_w -5 -5 0 13
right_e -5 -5 0 13
back_n -5 -5 0 13
front_s -5 -5 0 13
ccoef 0.000000000E+00 0.000000000E+00 0.000000000E+00 13
iwell 11 11 0 13
elev 2.000000000E+01 8.000000000E+01 6.000000000E+01 13
id_node 292 1084 792 13
finish
LaGriT successfully completed

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

View File

@@ -0,0 +1,43 @@
read/avs/tet_interp_materials.inp/mo_tet
quality
cmo/printatt/mo_tet/imt minmax
cmo/select/mo_tet
cmo/setatt/mo_tet itetclr 1
resetpts/itp
cmo/select/mo_tet
resetpts/parent
filter/1,0,0
rmpoint/compress
dump/fehm/tet/mo_tet/keepatt
dump/avs/tet_fehm.inp/mo_tet
cmo/addatt/mo_tet/ccoef/VDOUBLE/scalar/nnodes/linear/
cmo select mo_tet
pset pin attribute itp 1,0,0 lt 10
pset pneg attribute ccoef 1,0,0 lt -.0001
pset pBAD inter pin pneg
cmo printatt mo_tet ccoef minmax
cmo printatt mo_tet -all- minmax
cmo/select/mo_tet
surface/s_box/reflect/box/49.5 19.5 19./50.5 20.5 100.
region/r_box/le s_box
pset/pwell/region/r_box
cmo/printatt/mo_tet/-xyz-/minmax/pset,get,pwell
pset/pwell/zone/tet_well_nodes.zone/ascii/11
cmo/addatt/mo_tet iwell/VINT/scalar/nnodes/linear/permanent//0
cmo/setatt/mo_tet/iwell/pset,get,pwell/11
cmo/printatt/mo_tet/iwell/minmax
cmo/addatt/mo_tet elev/VDOUBLE/scalar/nnodes/
cmo/copyatt/mo_tet mo_tet/elev zic
cmo/set_id/mo_tet/node/id_node
dump/avs/tet_attributes.inp/mo_tet
cmo/printatt/mo_tet/-all- minmax
cmo/status/mo_tet
cmo/create/motmp
copypts/motmp/mo_tet
cmo/select/motmp
pset/pduds/attribute iwell/1,0,0/ne 11
rmpoint/pset,get,pduds
rmpoint/compress
dump/avs/tet_well_pnts.inp/motmp/1 3 1 0 0
cmo/printatt/motmp/-all- minmax
finish

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,128 @@
zone
00001
nnum
468
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150
151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170
171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190
191 192 193 194 195 196 197 198 200 201
202 203 204 205 206 207 208 209 211 212
213 214 215 216 217 218 219 220 222 223
224 225 226 227 228 229 230 231 233 234
235 236 237 238 239 240 241 242 244 245
246 247 248 249 250 251 252 253 255 256
257 258 259 260 261 262 263 264 267 268
269 270 271 272 273 274 275 278 279 280
281 282 283 284 285 286 289 290 291 292
293 294 295 296 297 300 301 302 303 304
305 306 307 308 311 312 313 314 315 316
317 318 319 322 323 324 325 326 327 328
329 330 333 334 335 336 337 338 339 340
341 344 345 346 347 348 349 350 351 352
355 356 357 358 359 360 361 362 363 366
367 368 369 370 371 372 373 374 377 378
379 380 381 382 383 384 385 388 389 390
391 392 393 394 395 396 400 401 402 403
404 405 406 407 411 412 413 414 415 416
417 418 422 423 424 425 426 427 428 429
433 434 435 436 437 438 439 440 444 445
446 447 448 449 450 451 455 456 457 458
459 460 461 462 463 466 467 468 469 470
471 472 473 474 477 478 479 480 481 482
483 484 485 488 489 490 491 492 493 494
495 496 499 500 501 502 503 504 505 506
507 510 511 512 513 514 515 516 517 518
521 522 523 524 525 526 527 528
00002
nnum
270
529 530 533 534 535 536 537 538 539 540
541 544 545 546 547 548 549 550 551 552
555 556 557 558 559 560 561 562 563 566
567 568 569 570 571 572 573 574 577 578
579 580 581 582 583 584 585 588 589 590
591 592 593 594 595 596 599 600 601 602
603 604 605 606 607 610 611 612 613 614
615 616 617 618 621 622 623 624 625 626
627 628 629 632 633 634 635 636 637 638
639 640 643 644 645 646 647 648 649 650
651 654 655 656 657 658 659 660 661 662
663 666 667 668 669 670 671 672 673 674
677 678 679 680 681 682 683 684 685 688
689 690 691 692 693 694 695 696 699 700
701 702 703 704 705 706 707 710 711 712
713 714 715 716 717 718 721 722 723 724
725 726 727 728 729 732 733 734 735 736
737 738 739 740 743 744 745 746 747 748
749 750 751 754 755 756 757 758 759 760
761 762 765 766 767 768 769 770 771 772
773 776 777 778 779 780 781 782 783 784
787 788 789 790 791 792 793 794 795 796
799 800 801 802 803 804 805 806 807 810
811 812 813 814 815 816 817 818 821 822
823 824 825 826 827 828 829 832 833 834
835 836 837 838 839 840 843 844 845 846
847 848 849 850 851 854 855 856 857 858
00003
nnum
204
859 860 861 862 866 867 868 869 870 871
872 873 877 878 879 880 881 882 883 884
888 889 890 891 892 893 894 895 899 900
901 902 903 904 905 906 910 911 912 913
914 915 916 917 921 922 923 924 925 926
927 928 929 932 933 934 935 936 937 938
939 940 943 944 945 946 947 948 949 950
951 954 955 956 957 958 959 960 961 962
965 966 967 968 969 970 971 972 973 976
977 978 979 980 981 982 983 984 987 988
989 990 991 992 993 994 995 999 1000 1001
1002 1003 1004 1005 1006 1010 1011 1012 1013 1014
1015 1016 1017 1021 1022 1023 1024 1025 1026 1027
1028 1032 1033 1034 1035 1036 1037 1038 1039 1043
1044 1045 1046 1047 1048 1049 1050 1054 1055 1056
1057 1058 1059 1060 1061 1062 1065 1066 1067 1068
1069 1070 1071 1072 1073 1076 1077 1078 1079 1080
1081 1082 1083 1084 1087 1088 1089 1090 1091 1092
1093 1094 1095 1098 1099 1100 1101 1102 1103 1104
1105 1106 1109 1110 1111 1112 1113 1114 1115 1116
1117 1120 1121 1122
00004
nnum
180
199 210 221 232 243 254 265 266 276 277
287 288 298 299 309 310 320 321 331 332
342 343 353 354 364 365 375 376 386 387
397 398 399 408 409 410 419 420 421 430
431 432 441 442 443 452 453 454 464 465
475 476 486 487 497 498 508 509 519 520
531 532 542 543 553 554 564 565 575 576
586 587 597 598 608 609 619 620 630 631
641 642 652 653 664 665 675 676 686 687
697 698 708 709 719 720 730 731 741 742
752 753 763 764 774 775 785 786 797 798
808 809 819 820 830 831 841 842 852 853
863 864 865 874 875 876 885 886 887 896
897 898 907 908 909 918 919 920 930 931
941 942 952 953 963 964 974 975 985 986
996 997 998 1007 1008 1009 1018 1019 1020 1029
1030 1031 1040 1041 1042 1051 1052 1053 1063 1064
1074 1075 1085 1086 1096 1097 1107 1108 1118 1119
stop

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,95 @@
zone
00001 top
nnum
66
1057 1058 1059 1060 1061 1062 1063 1064 1065 1066
1067 1068 1069 1070 1071 1072 1073 1074 1075 1076
1077 1078 1079 1080 1081 1082 1083 1084 1085 1086
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096
1097 1098 1099 1100 1101 1102 1103 1104 1105 1106
1107 1108 1109 1110 1111 1112 1113 1114 1115 1116
1117 1118 1119 1120 1121 1122
00002 bottom
nnum
66
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66
00003 left_w
nnum
102
1 12 23 34 45 56 67 78 89 100
111 122 133 144 155 166 177 188 199 210
221 232 243 254 265 276 287 298 309 320
331 342 353 364 375 386 397 408 419 430
441 452 463 474 485 496 507 518 529 540
551 562 573 584 595 606 617 628 639 650
661 672 683 694 705 716 727 738 749 760
771 782 793 804 815 826 837 848 859 870
881 892 903 914 925 936 947 958 969 980
991 1002 1013 1024 1035 1046 1057 1068 1079 1090
1101 1112
00005 right_e
nnum
102
11 22 33 44 55 66 77 88 99 110
121 132 143 154 165 176 187 198 209 220
231 242 253 264 275 286 297 308 319 330
341 352 363 374 385 396 407 418 429 440
451 462 473 484 495 506 517 528 539 550
561 572 583 594 605 616 627 638 649 660
671 682 693 704 715 726 737 748 759 770
781 792 803 814 825 836 847 858 869 880
891 902 913 924 935 946 957 968 979 990
1001 1012 1023 1034 1045 1056 1067 1078 1089 1100
1111 1122
00006 back_n
nnum
187
56 57 58 59 60 61 62 63 64 65
66 122 123 124 125 126 127 128 129 130
131 132 188 189 190 191 192 193 194 195
196 197 198 254 255 256 257 258 259 260
261 262 263 264 320 321 322 323 324 325
326 327 328 329 330 386 387 388 389 390
391 392 393 394 395 396 452 453 454 455
456 457 458 459 460 461 462 518 519 520
521 522 523 524 525 526 527 528 584 585
586 587 588 589 590 591 592 593 594 650
651 652 653 654 655 656 657 658 659 660
716 717 718 719 720 721 722 723 724 725
726 782 783 784 785 786 787 788 789 790
791 792 848 849 850 851 852 853 854 855
856 857 858 914 915 916 917 918 919 920
921 922 923 924 980 981 982 983 984 985
986 987 988 989 990 1046 1047 1048 1049 1050
1051 1052 1053 1054 1055 1056 1112 1113 1114 1115
1116 1117 1118 1119 1120 1121 1122
00004 front_s
nnum
187
1 2 3 4 5 6 7 8 9 10
11 67 68 69 70 71 72 73 74 75
76 77 133 134 135 136 137 138 139 140
141 142 143 199 200 201 202 203 204 205
206 207 208 209 265 266 267 268 269 270
271 272 273 274 275 331 332 333 334 335
336 337 338 339 340 341 397 398 399 400
401 402 403 404 405 406 407 463 464 465
466 467 468 469 470 471 472 473 529 530
531 532 533 534 535 536 537 538 539 595
596 597 598 599 600 601 602 603 604 605
661 662 663 664 665 666 667 668 669 670
671 727 728 729 730 731 732 733 734 735
736 737 793 794 795 796 797 798 799 800
801 802 803 859 860 861 862 863 864 865
866 867 868 869 925 926 927 928 929 930
931 932 933 934 935 991 992 993 994 995
996 997 998 999 1000 1001 1057 1058 1059 1060
1061 1062 1063 1064 1065 1066 1067
stop

View File

@@ -0,0 +1,377 @@
zone
00001 top Sum VORONOI vectors: 0.2500000E+03 0.5000000E+03 0.5000000E+04
nnum
66
-1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 1.000000000000E+02
2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 -1.250000000000E+01 1.250000000000E+01 2.500000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 1.250000000000E+01 1.250000000000E+01 2.500000000000E+01
00002 bottom Sum VORONOI vectors: 0.2500000E+03 0.5000000E+03 0.5000000E+04
nnum
66
-1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02 0.000000000000E+00 0.000000000000E+00 -1.000000000000E+02
2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 -1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01
00003 left_w Sum VORONOI vectors: 0.4000000E+04 0.8000000E+03 0.5000000E+03
nnum
102
-1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 -1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
-5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
-2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 -1.250000000000E+01 1.250000000000E+01 2.500000000000E+01
00005 right_e Sum VORONOI vectors: 0.4000000E+04 0.8000000E+03 0.5000000E+03
nnum
102
1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01
2.500000000000E+01 0.000000000000E+00 -5.000000000000E+01 1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00
5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 2.500000000000E+01 0.000000000000E+00 5.000000000000E+01
2.500000000000E+01 0.000000000000E+00 5.000000000000E+01 1.250000000000E+01 1.250000000000E+01 2.500000000000E+01
00006 back_n Sum VORONOI vectors: 0.8000000E+03 0.8000000E+04 0.1000000E+04
nnum
187
-1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -5.000000000000E+01
1.250000000000E+01 1.250000000000E+01 -2.500000000000E+01 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 2.500000000000E+01 0.000000000000E+00
-1.250000000000E+01 1.250000000000E+01 2.500000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 5.000000000000E+01
1.250000000000E+01 1.250000000000E+01 2.500000000000E+01
00004 front_s Sum VORONOI vectors: 0.8000000E+03 0.8000000E+04 0.1000000E+04
nnum
187
-1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 -5.000000000000E+01
1.250000000000E+01 -1.250000000000E+01 -2.500000000000E+01 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00
0.000000000000E+00 -5.000000000000E+01 0.000000000000E+00 2.500000000000E+01 -2.500000000000E+01 0.000000000000E+00
-1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01 0.000000000000E+00 -2.500000000000E+01 5.000000000000E+01
1.250000000000E+01 -1.250000000000E+01 2.500000000000E+01
stop

View File

@@ -0,0 +1,8 @@
zone
000011 pwell
nnum
13
292 358 424 490 556 622 688 754 820 886
952 1018 1084
stop

View File

@@ -0,0 +1,55 @@
13 13 14 0 0
001 5.000000000000E+01 2.000000000000E+01 2.000000000000E+01
002 5.000000000000E+01 2.000000000000E+01 2.500000000000E+01
003 5.000000000000E+01 2.000000000000E+01 3.000000000000E+01
004 5.000000000000E+01 2.000000000000E+01 3.500000000000E+01
005 5.000000000000E+01 2.000000000000E+01 4.000000000000E+01
006 5.000000000000E+01 2.000000000000E+01 4.500000000000E+01
007 5.000000000000E+01 2.000000000000E+01 5.000000000000E+01
008 5.000000000000E+01 2.000000000000E+01 5.500000000000E+01
009 5.000000000000E+01 2.000000000000E+01 6.000000000000E+01
010 5.000000000000E+01 2.000000000000E+01 6.500000000000E+01
011 5.000000000000E+01 2.000000000000E+01 7.000000000000E+01
012 5.000000000000E+01 2.000000000000E+01 7.500000000000E+01
013 5.000000000000E+01 2.000000000000E+01 8.000000000000E+01
001 1 pt 1
002 1 pt 2
003 1 pt 3
004 1 pt 4
005 1 pt 5
006 1 pt 6
007 1 pt 7
008 1 pt 8
009 1 pt 9
010 1 pt 10
011 1 pt 11
012 1 pt 12
013 1 pt 13
00014 1 1 1 1 1 1 1 1 1 1 1 1 1 1
imt1, integer
itp1, integer
icr1, integer
isn1, integer
top, integer
bottom, integer
left_w, integer
right_e, integer
back_n, integer
front_s, integer
ccoef, real
iwell, integer
elev, real
id_node, integer
1 1 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.200000000000E+02 292
2 1 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.250000000000E+02 358
3 1 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.300000000000E+02 424
4 1 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.350000000000E+02 490
5 2 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.400000000000E+02 556
6 2 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.450000000000E+02 622
7 2 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.500000000000E+02 688
8 2 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.550000000000E+02 754
9 4 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.600000000000E+02 820
10 4 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.650000000000E+02 886
11 4 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.700000000000E+02 952
12 4 0 0 0 -5 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.750000000000E+02 1018
13 3 10 0 0 1 -5 -5 -5 -5 -5 0.000000000000E+00 11 0.800000000000E+02 1084

View File

@@ -0,0 +1,4 @@
pset ascii 1
pwell 4 13
292 358 424 490 556 622 688 754 820 886
952 1018 1084