Major upgrade to LaGriT build and test scripts.
Added install.h and improved documentation for building LaGriT on Linux and Mac machines.
Update ExodusII to 7.01 using git clone https://github.com/gsjaardema/seacas.git
Removed exodus include files from src directory and changed build to use $EXODUSII_HOME/include
Updates to lagrit.lanl.gov web pages and documents, added text regarding open source and github
These issues were fixed:
segmentation fault during triangulate
massage command failing to de-refine and no error is reported
ExodusII output for 2D Planar incorrectly written as 3 Dimensions
second call to addmesh/excavate command causing memory error or segmentation fault
output adjusted to make room for large numbers when reporting dudded nodes from filter command
level01/createpts_filter - illustrates the difference between filter and the more accurate filterkd commands
level01/smooth_massage - use massage with smooth to refine and de-refine a triangulation
level01/write_exo - write 3D and 2D Exodus files with psets, eltsets, and facesets
level01/pflotran_stor - write pflotran style Voronoi geometric coefficient (volume, face area) files
read_sheetij - creates a quad mesh from an elevation file reading Z(i,j) into mesh zic attribute
read_modflow - creates a modflow rectilinear mesh using modflow files using elev_top.mod and init_bnds.inf
read_fehm - read FEHM format mesh file with geometry and connectivity (LaGriT does not have this option)
examples/arctic_w_ice_wedges - example Mesh for 2D polygon with ice wedges by Chuck Abolt
Builds with compiler gfortran v5 or greater can generate run-time signal exceptions such as IEEE_DNORMAL. Most exceptions have been tracked down and fixed according to picky compiler suggestions. These exceptions have not changed the behavior of the code. Exceptions will continue to be fixed as they show up.
During testing it was found that the filter command may find and remove fewer nodes than the command filterkd. The command filterkd is recommended where precision might be an issue. Documentation will be changed to reflect this. It is expected that the filter command and algorithm will be deprecated and replaced by filterkd. See test/level01/createpts_filter
Paraview has trouble displaying ExodusII facesets for 2D grids in 3 Dimensions, but is fine with 2D planar where Z values are ignored. When viewing these same ExodusII files with GMV, the facesets look correct. Checking files by converting to ASCII with ncdump, the files look correct. We do not know if this is a LaGriT, ExodusII, or Paraview issue. See test/level01/write_exo/reference for ExodusII example files.
LaGriT V3 LACC-15-069 is now distributed as open-source software under a BSD 3-Clause License.
This version moves the entire LaGriT repo from a local mercurial version control to github
and now includes the python driven version PyLaGriT.
For most current versions of source and documentation use the open-source repository at
https://github.com/lanl/LaGriT
Last version under open distribution license:
2012 LaGriT Version 3 LACC-2012-084 Copyright Notice: This program was prepared by Los Alamos National Security, LLC at Los Alamos National Laboratory (LANL) under contract No. DE-AC52-06NA25396 with the U.S. Department of Energy (DOE). All rights in the program are reserved by the DOE and Los Alamos National Security, LLC. Permission is granted to the public to copy and use this software without charge, provided that this Notice and any statement of authorship are reproduced on all copies. Neither the U.S. Government nor LANS makes any warranty, express or implied, or assumes any liability or responsibility for the use of this software.
Change from Mercurial open distribution to open source on Github. Tag this version Release V3.108 and use clone for V3.2 for start of open-source repository.
LaGriT V3.108 from https://ancho.lanl.gov/lagrit/hg/lagrit tag: Release V3.108 parent: 349:8524530343c2 parent: 346:a5f6fb10ecce user: Terry Millerdate: Tue Jul 26 09:48:53 2016 -0600
This merges student Mikita V3.106 WIN development with master.
Mikita comments and updates to mercurial/trac repository include:
opsys.h 157,165d156 < #ifdef win64 < #define FCV_UNDERSCORE < #define SIZEOF_INT 4 < #define SIZEOF_LONG 8 < #define SIZEOF_VOIDP 8 < #define MAX_UINT 18446744073709551615.00 < #endif < < 185,187d175 < #ifdef win64 < #define int_ptrsize long long < #else 189d176 < #endif type_sizes.h 46a47,54 > /****** Cygwin ****** > #ifdef __CYGWIN__ > #define FCV_UNDERSCORE > #define SIZEOF_INT 4 > #define SIZEOF_LONG 4 > #define SIZEOF_VOIDP 8 > #endif ***/ machine_header.h 68a69,74 > #ifdef win64 > #define FCV_UNDERSCORE > #define SIZEOF_INT 4 > #define SIZEOF_LONG 8 > #define SIZEOF_VOIDP 8 > #endif Makefile 94a95,109 > ifeq ($(COMPILER), cygwin) > SUFFC = _cygwin > FC = /bin/gfortran > CC = /bin/gcc > CXX = /bin/c++ > FC90 = /bin/gfortran > > OSTAG = _cygwin > > FFLAGS = -fcray-pointer -fdefault-integer-8 -m64 -Dwin64 > FF90FLAGS = -fcray-pointer -fdefault-integer-8 -m64 -Dwin64 > CFLAGS = -m64 -Dwin64 > # -I/usr/include > endif >
Major update to write PFLOTRAN type option stor file and new syntax using Exodus II 6.9 libraries.
This version is used for code development by summer student Mikita Yanki that includes changes and scripts
to build LaGriT on windows with Exodus II V6 libraries. This is a branch that does not include
some of the V3.107 updates. Mikita's version is merged and contained in the V3.2 release.
Note: The LaGriT run-time banner shows V3.2 with compile date Aug 2015, even though it is actually a branch from V3.106.
Major updates include:
dump / pflotran / root_name / cmo_name dump / pflotran / root_name / cmo_name / nofilter_zero
http://sourceforge.net/projects/exodusii/files/ Exodus II 6.09 HDF5 version 1.8.6 netcdf-4.1.3
Exodus 6.09: < :api_version = 6.09f ; < :version = 6.09f ; --- < eb_prop1 = 1, 2, 3 ; Exodus 5.22a: > :api_version = 5.22f ; > :version = 5.22f ; --- > eb_prop1 = 10000, 20000, 30000 ;
Minor updates to master version include:
Library inclusion order in the following places: 1. /n/swdev/src/exodusii/exodus-6.09/exodus/cbind/CMakeList.txt Line 284 2. /n/swdev/src/exodusoo/exodus-6.09/exodus/forbind/CMakeList.txt Line 62 Solution was to switch ${HDF5_LIBRARY} with ${HDF5HL_LIBRARY}
This version does NOT have the PFLOTRAN file output used by DFN workflow.
There are no major enhancements, code is compiled and tested for release. This is in preparation for major update to Exodus 6 which changes routine calls and syntax.
V3.103 is last version lagrit code using Exodus 5 libs V3.104 is new version lagrit code using Exodus 6 libs - Build/test V3.103 old RHEL RedHat 5 on aquifer with Exodus 5 - Build/test V3.103 new RHEL RedHat 6.5 on darcy or talik with Exodus 5 - Build/test V3.103 Ubuntu-14.04-x86_64 with Exodus 5 - Build/test V3.104 Ubuntu-14.04-x86_64 with Exodus 6 - Build/test V3.104 WIN7 with Exodus 6 - Build/test V3.104 MacOS with Exodus 6 - Build/test V3.104 RHEL 6.5 with Exodus 6 Current Stable Linux version: LaGriT V3.101 Linux m64 date_compile: 2013/04/25 RH gf4.5 These are the external libs used with LaGriT V3.1 As of November 2012 http://sourceforge.net/projects/exodusii/files/ Exodus II 5.22a HDF5 version 1.8.6 netcdf-4.1.3 Linux RHEL Exodus 5 libraries were built in /n/swdev/LAGRIT/VERS_3.100_012_NOV09/build_lagrit/exodus Build executable for linux: gfortran -O -Dlinx64 -static -fcray-pointer -fdefault-integer-8 -fno-sign-zero -o mylagrit lagrit_main.o lagrit_fdate.o lagrit_lin64_o_gf4.5.a /n/swdev/LAGRIT/VERS_3.100_012_NOV09/build_lagrit/lg_util/lib/util_lin64_o_gfort4.5.a -L /n/swdev/LAGRIT/VERS_3.100_012_NOV09/build_lagrit/exodus/lin64/lib -lexoIIv2for -lexodus -lnetcdf -lhdf5_hl -lhdf5 -lz -lm -lstdc++
This release include the following enhancements:
This release include the following fixes:
Major changes to most parts of the code to enable 64 bit compilation and added external Exodus II 5 libraries to write Exodus basic mesh files. These are the external libs used with this release:
http://sourceforge.net/projects/exodusii/files/ Exodus II 5.22a HDF5 version 1.8.6 netcdf-4.1.3 Code Files: exo_put_sets.c dumpexodusII.f derefine.f
A few minor changes/fixes include: cmo/copyatt fix copy from node attribute to elem attribute of equal length. cmo/readatt fix to allow char in first position. Memory and bug fixes related to 64 bit code changes. Improved error catching for common routines.
Syntax: dump / exo / ifile / cmoname Dump exodus files with/without facesets, fast/slow options: dump / exo / ifile / cmoname / facesets / on dump / exo / ifile / cmoname / facesets / off dump / exo / ifile / cmoname / facesets / on file1,file2,...filen dump / exo / ifile / cmoname / facesets / off file1,file2,...filen write exo pset and eltsets: dump / exo / filenam.exo / cmoname / psets / eltsets / dump/exo/mesh_07.exo/mo7//eltsets/ & facesets bc01.faceset & bc02.faceset bc03.faceset bc04.faceset & bc05.faceset bc08.faceset bc09.faceset dump/exo/mesh_06.exo/mo6/psets// & facesets bc01.faceset & bc02.faceset bc03.faceset bc04.faceset & bc05.faceset bc08.faceset bc09.faceset
Syntax: massage / [bisection length/field name] / merge_length / toldamage / ...
Syntax: massage2/ [file name] / [Target Length Scale]/[field name]/ & merge_length/toldamage/[tolroughness]/[ifirst,ilast,istride]/ ...
Syntax: sort / line_graph / cmo / ascending | descending / [key] / [nodes/elements]
Major changes incoporating work from Andrew Kuprat (64bit work) and summer student Adam Cozzette to add more capability.
Changes to make 64bit code more consistent and easier to modify for various platforms.
The code for stack routines are combined into stack_options.f from temptam.f and read_trilayers.f.
The beads algorithm and routines are now all in their
own file beads_ona_ring.f
LaGriT assumes that the size of an integer is the same size as a
pointer. Use the preprocessor and configure settings to select
the integer type so that it matches the size of a pointer.
#if SIZEOF_INT == SIZEOF_VOIDP #define int_ptrsize int #elif SIZEOF_LONG == SIZEOF_VOIDP #define int_ptrsize long Makefile changes for 64 bit compile: -fcray-pointer Enables the Cray pointer extension, which provides a C-like pointer -falign-commons (will try to reorder commons so this is not needed) By default, gfortran enforces proper alignment of all variables in a COMMON block by padding them as needed. On certain platforms this is mandatory, on others it increases performance. If a COMMON block is not declared with consistent data types everywhere, this padding can cause trouble, and -fno-align-commons can be used to disable automatic alignment. The same form of this option should be used for all files that share a COMMON block. To avoid potential alignment issues in COMMON blocks, it is recommended to order objects from largests to smallest.
Andrew Kuprat changes:
filterkd.f - new filter command (called with 'filterkd') uses kd-tree for filter. msgtty.f - added command 'filterkd' reverseform.f - necessary for filterkd.f readgmv_binary.f - Changed gmv routines so read/write gmv works on 64-bit dumpgmv_hybrid.f - Changed gmv routines so read/write gmv works on 64-bit Makefile.depends - updated for filterkd, reverseform
Adam Cozzette changes:
- added several functions for computing the hybrid point of a control volume: tetisOnBoundary, intersectSegmentWithFace, getHybridPoint - added helper functions for computing dot products and distances. - changed the areaOf3dTriangle function to compute a vector area rather than a scalar. - a change computes a unit vector in the direction of an edge between two points in the tetrahedral mesh. We dot this with the facet of the Voronoi cell in order to consider just the component of the area that is in the direction of the edge. - changed the parameter list for initialize3ddiffusionmat_ so that the function also takes arrays for jtet, pmbndry, ifhybrid, and hybridfactor. ifhybrid indicates whether to use hybrid volumes and hybrid_factor is an attribute that the function will fill in order to indicate the extent to which each cell is hybridized - added function prototypes so that gcc can perform type checking - added #if to match format string to size of integers being used
- changed subroutine call to add hybrid_factor subroutine anothermatbld3d_wrapper - x (ifile,io_type,num_area_coef,ifcompress) + x (ifile,io_type,num_area_coef,ifcompress, ifhybrid)
- added the hybrid_volume to the cmo // addatt command - added a metric for quad quality cmo // addatt / quad_quality
- fix bug in 2D delaunay connect where the code doubled the coordinates of the first Voronoi point
- fixed an off-by-one error by making an array one element longer in a call to mmgetblk with length + 1 this was causing segfault errors
- changed subroutine call to add hybrid_factor subroutine dumpfehm(ifile,ifileini,ioption,iomode, - * area_coef_option,compress_opt,attrib_option,area_option) + * area_coef_option,compress_opt,attrib_option,area_option, + * hybrid_option)
- Added support for writing element sets out to a file based on pset logic changed the behavior so that eltset // write will write each element set to a separate file if it is given the -all- option filenames now end with .cellset - fixed a bug where attempting to redefine an element set, the set is now zeroed out and written afresh
- changed loop to check condition before starting, this avoids writing to memory is invalid
- added sort // line_graph after performing the intersection - fixed loop that was looping wrong number of times changed 1,npointsa to 1,npoint
- fixed Warning so it is given once instead of once for every element
- changed pset to verify a point before writing to file - added the -all- option that writes each pset to seperate files with the new file extension .vertexset
- Added support for quad metrics in quality / quad
- fixed reorder so that it doesn't rely on the numerical values to determine whether to sort nodes or elements - added messages to indicate possible WARNINGS for reorder
- Fixed a bug whereby rotateln would rotate some points in one direction and some points in the opposite direction.
- Added support for sort // line_graph. line_graph_sort.cpp does most of the real work. I also had to fix this subroutine to create the sort keys correctly. Previously it used an integer length to decide whether to use 'nnodes' or 'nelements', but now it is careful to choose based on whether it is actually sorting nodes or elements.
- removed unused variables in order to get rid of compiler warnings - added #if for printf to use string according to integer size
- changes to facilitate the 'hybrid' option and Rao's new dump / exo code
* * Program: LaGriT V2.200 Linux m32 *
* * date_compile: 2010/11/22 *
The next release, expected in
early 2011, will have 64 bit memory pointers. This will allow access to
much more real and virtual memory so that the present limitations on
memory and mesh size that can be built and manipulated will be greatly
expanded.Modifications and New Capabilities Index:
|
This includes a minor changes and added error checking. The following are new syntax that are code wrappers for common command calls.
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.
Other changes include: