Files
LaGriT/docs/pages/release_notes/lagrit_release_notes_081021.md

256 lines
11 KiB
Markdown
Raw Normal View History

2025-12-17 11:00:57 +08:00
---
title: 'LaGriT V2 Release Notes'
---
## Version 2.2 Release November 2010
This is the last release before work to support 64 bit.
```
* * Program: LaGriT V2.200 Linux m32 *
* * date_compile: 2010/11/22 *
```
### Enhancements:
- **interpolate** Changed interpolate to "find" more points on edges
this will permit nodes to find a nearest edge or point and be
"inside" the triangle for extreme small or large numbers where
epsilon values are difficult to evaluate correctly.
Note, this changed test results for interpolate, test/level01
results were updated for these improvements.
- **extract/surfmesh** Now creates attributes to hold element local face numbers of 3D input
mesh that occur on either side of output mesh face, idface0 and idface1.
Now copies user-created node-based attributes from source.
- **dump/fehm dump/zone_outside** Changed FEHM outside area to Voronoi instead of Median
FEHM file file_name_outside.area changed to file_name_outside_vor.area
For dump/zone, added keywords keepatt_area or keepatt_voronoi which will
compute and keep voronoi vector areas xn_varea, yn_varea, zn_varea
and keepatt_median will compute area/num nodes on face and
keep attributes xn_area, yn_area, zn_area
The written file file_name_outside_vor.area or file_name_outside_med.area
is a list of 2D area vectors (Ax_i,Ay_i,Az_i) associated with each node.
- **cmo/addatt/voronoi_varea** will do the same voronoi calculation on triangles
as is done with the outside area for FEHM modeling files. The call will
create node attributes xn_varea, yn_varea, zn_varea indicating face directions.
- **dump/ filename** 2 token dump for common files added to writedump.f
- **addmesh/ excavate** remove nodes and elements if they fall with the circumsphere of triangles on the input mesh.
### These issues were fixed:
- intrp_gtg.f A bug was fixed in interpolation that would sometimes save
a node id in pt_gtg or el_gtg attributes that was not related
to the found candidate and value. This could occur where there are
multiple candidates for the source and if epsilon values are
reaching near machine limits. The test in level01/intrp_2D_sizes
was changed to capture and evaluate these issues.
- epsilon errors in *intrp_gtg.f, inside_lg.f* There are changes to interpolate using tests for finding points
that are inside or on edges or vertices of an element. The epsilon
tests have been relaxed to allow points that are "near" to be
found on edge - if within the chosen epsilon. The interpolation
has been changed to evaluate candidate points based on the
confidence of being inside the associated triangle. A result
indicating the point is inside will "win" over a candidate result
that is on edge or vertice. If idebug attribute is set to a
number of 5 or greater, there will be many more statements
written that are related to the inside triangle and epsilon
tests.
## Version 2.106 6/29/2010
This version contains the work done over the summer by Aaron Gable.
Better handling of errors and segmentation faults were added to
various pieces of the code having to do with actions involving
more than one mesh object and their user defined attributes.
### Enhancements
- **memory** New options to print and check memory manager and report memory usage. This superseeds old utilities mmprint, mmcheck, etc.
- **read** for 3 tokens for .inp .gmv .avs
- **cmo/attribute_union** Change two meshes so they both share the same set of attributes
- **compute / linear_transform** extrapolation from an attribute value in a surface onto every node of
a 3D mesh
- **compute/signed_distance_field** to calculate signed distance relative to above and below.
- **grid2grid** wrapper for hextotet. can also convert from octree mesh to lagrit with **tree_to_fe**
- *anothermatbld3d_wrapper.f* Create two new node vectors, ccoef, ij_ccoef
Put the negative ij coefficient value into the two nodes connected to the ij edge.
The vector ij_coef will assign the j index value to node i so that one can determine
which edge is associated with the neative coefficient that is assigned to nodes.
- Add option to **pset/ / zone** for user specified zone id number
### These issues were fixed:
- Modified epsilons in tri2d, fixed bug in foreach part of loop
- *anothermatbld3d.c* possible accuracy improvement using Carl's changes to include TranslateTetToZero for geometric calculations
## Version 2.1 Release August 2009
This is a major update to LaGriT and the lg_util library.
Major changes have been made in the core memory management routines to allow
development for a 64 bit release. These changes will be invisible to most users
but allows better reporting of errors and memory usage for useful diagnostic information.
```
* * Program: LaGriT V2.100 Linux m32 *
* * date_compile: 2009/08/03 *
```
###Enhancements:
- Executable build for Mac with Intel chip
- New capability in compute module to compute signed distance fields
- Incorporate METIS source code for graph partition and reorder package
with LaGriT. For details of METIS algorithms and descriptions of the third command
line argument see ``` http://glaros.dtc.umn.edu/gkhome/views/metis```
- Add option to create node attribute that is the Voronoi volume
associated with each node of a Delaunay mesh
- Module addmesh modified to handle errors so that it can be used in a
loop without needing to have first call be different
- Updates stor file commands so default uses newest version of code to
build sparse matrix. This uses less memory and takes less time to
build. New syntax options for stor file compression include all (default),
graph, coefs, or none. Initialize list pointers to null
assign null to pointers after free
add warning messages for failure to free.
- *initlagrit.f* add call to mmverify
the new util version checks for correct pointer sizes
- **cmo addatt vor_volume** added which calls anothermatbld3d_wrapper to fill voronoi volumes
- *dumpfehm.f* Add compress_opt to dumpfehm arguments
add comments and error checking to clarify code logic
check options and set for 2D or 3D calls to matbld
use matbld3d_stor for compress options none and coefs
use anothermatbld3d_wrapper for compress options all and graph
Note anothermatbld3d_wrapper can write only scalar coef values
- *anothermatbld3d_wrapper.f*
Extensive chages to error handling and messages, but not to the logic of program
This code has same logic as matbld3d - but uses linked lists instead of mmgetblk calls
Use io_type to toggle creation of attribute for voronoi volumes or to write to stor file
added extensive error checking to eliminate segmentation faults
added error check and message for every mmgetblk and mmrelblk
added calls to mmprint when mm calls fail
cleaned up variable declarations and added comments
added istatus to check for errors and completion of matrix
changed all routine messages to start with AMatbld3d_stor to distinguish from matrix built with Matbld3d_stor
added idebug options
added status report at end of routine
- *matbld3d_stor.f*
Extensive chages to error handling and messages, but not to the logic of program
This code uses many mmgetblk calls and about 40 percent more memory than linked list version
added extensive error checking to eliminate segmentation faults
added error check and message for every mmgetblk and mmrelblk
added calls to mmprint when mm calls fail
cleaned up variable declarations and added comments
added istatus to check for errors and completion of matrix
added idebug options
added status report at end of routine
- *matbld1.f*
This routine is called by matbld3d_stor
added error check and message for every mmgetblk and mmrelblk
added calls to mmprint when mm calls fail
###These issues were fixed:
- readatt not working correctly for psets
- *blockcom.h* fix for compile on MAC OS X Absoft on intel comment out ntetmax/0/ and let compiler initialize because we have 2 instances of pointer sizes. See kfix and xfix in neibor.h
-------------------------------------
## Version 2.004 10/21/2008
### Enhancements:
- resetpts bug fix, boundary_components and extract_surfmesh added features
- boundary_components: added id_numb boundary index number
- extract_surfmesh: added attributes idelem0, idelem1, idnode0 and removed attribute map- Made changes so that filter and rmmat return with no action rather than crash when passed an empty mesh object.
- Add options dump/att_node and dump/att_elem
- Add options dump/att_node and dump/att_elem to output tables of either node attributes or element attributes to ascii files with header lines beginning with character \#.
These are similar to *dump/avs/file/mo/0 0 2 0* or *dump/avs/file/mo/0 0 0 2* except the addition of \# character to start lines. Now these files can be read in without editing using *cmo / readatt /* workflow.
- Added character # for comment lines
### These issues were fixed:
- resetpts had a bug for some element types
- Corrected bug: cmo_exist returned error flag but check of error flag was to wrong error flag variable.
- Made changes so that filter and rmmat return with no action rather than crash when passed an empty mesh object.
---------
## Version 2.003 05/20/08
Compile and test V2.003 for platforms SGI-32, SUN, MAC, LINUX
### These issues were fixed:
- These include fixes to SGI compile errors in dumpavs.f filter.f refine_tet_add.f lagrit*.h writinit.f and the Makefile in src
- Correct minor bugs. Test case now works. sphere1.f had an incorrect attempt to use MO name before the name had been obtained. Code would crash.
- offsetsurf.f did not handle problems with non-triangle or line type MO. Instead of kicking out, an attempt was made to compute sythetic normal for a mesh object (such as quad) and this caused code to crash.
- Fixed error that occured when all output attributes were turned off.
- Fixed error that occured when all output attributes were turned off.
- Code tried to allocate a zero length array for xvalues( ).
## Version 2.002 Release April 2008
Improved check_test.py to compare numbers as numerical values instead of text string. The new results are saved in result_files
Generalized version Makefile and dependencies
- Uses wildcards for .f .f90 and .c
- maintains object files in seperate directories
- for each platform and for debug and optimized
- use make help for list of options
- added options opt and debug as build choices
Initialize nremtet and npoints2 to 0, initialize number_elements and number_nodes to zero
Modify output for Dudded points to indicate when there are no elements (for removal)
Changed name from 'program adrivgen' to 'program lagrit_main'
Modified header correcting spelling, changed X3D to LaGriT.
### Enhancements
- Add capability to read FEHM zone/zonn files.
### These issues were fixed:
- corrected change to printatt minmax output so that name has 18 characters, with total line of 80 chars
- for cmo_setatt.f added error check for existing cmo and expanded name string size for 17 character names
- for cmo/printatt/ minmax limited format to 80 characters
- Corrected typo in screen output. Changed 'nnelements' to 'nelements'
- Changed some memory allocation from real(2) to int(1) for integer work arrays. Running a large problem (>10,000,000 nodes) was
crashing at rmpoint due to MALLOC failure.
*changesets tracked with Mecurial/Trac 0.10.4 on ancho.lanl.gov/lagrit/hg/lagrit*