Files
LaGriT/test/level02/write_exo/reference/input.lgi
2025-12-17 11:00:57 +08:00

240 lines
7.0 KiB
Plaintext
Executable File

# Test dump/exo in 3D and 2D with psets, eltsets, facesets
# simple examples testing all variations to write
#
# facesets are tested for auto and extract surfmesh
#
# extract = facesets defined by extract surfmesh
# 1=all_outside_faces
#
# not often used, less predictable and takes a long time
# auto = facesets generated automaticly in LaGriT
# 1=all_outside_faces
# 2=front_edge,3=right_edge,4=left_edge, ... each direction
# if multiple block materials,
# foreach block_id
# write outside faces for each direction
#
# convert binary .exo files to ascii then compare to reference
# for f in *.exo ; do echo $f; ncdump $f > $f.ascii; done
# -------------------------------------------------------
# Test 01
# 3D 4x4x4 hex box
# 3 eltsets, 3 psets, auto facesets
cmo / create / mohex / / / hex
createpts / brick / xyz / 4 4 4 / 0. 0. 0. / 1. 1. 1. / 1 1 1
cmo / setatt / mohex / imt / 1 0 0 / 1
resetpts / itp
cmo / setatt / mohex / itetclr / 1 0 0 / 1
cmo / setatt / mohex / itetclr / 1 3 1 / 2
cmo / setatt / mohex / itetclr / 10 15 1 / 3
eltset / e1 / itetclr / eq / 1
eltset / e2 / itetclr / eq / 2
eltset / e3 / itetclr / eq / 3
pset / p1 / eltset / e1
pset / p2 / eltset / e2
pset / p3 / eltset / e3
eltset / / list
pset / / list
dump / exo / out_3D_hex_pset_eltset.exo / mohex / psets / eltsets /
dump / exo / out_3D_hex_pset.exo / mohex / psets / /
dump / exo / out_3D_hex_eltset.exo / mohex / / eltsets /
# use auto generated facesets 1 to 20
dump/exo/out_3D_hex_all_auto.exo / mohex /psets/eltsets/facesets
# define outside boundary faces and write facesets
cmo/copy/motmp/mohex
cmo/setatt/motmp itetclr 1
resetpts itp
extract/surfmesh/1 0 0/ mofs / motmp / external
cmo / modatt / mofs / itetclr0 / ioflag / l
cmo / modatt / mofs / itetclr1 / ioflag / l
cmo / modatt / mofs / idelem0 / ioflag / l
cmo / modatt / mofs / facecol / ioflag / l
cmo / modatt / mofs / idface0 / ioflag / l
dump/avs/ out_3d_hex_extract.faceset / mofs / 0 0 0 2
cmo/delete/mofs
cmo/delete/motmp
dump/exo/out_3D_hex_all_extract.exo/mohex/psets/eltsets/ &
facesets out_3d_hex_extract.faceset
# -------------------------------------------------------
# Test 02
# 3D 4x4x4 hex box converted to tets
# 3 eltsets, 3 psets, auto facesets
grid2grid / hextotet5 / motet / mohex
cmo / delete / mohex
cmo / setatt / motet / imt / 1 0 0 / 1
resetpts / itp
cmo / setatt / motet / itetclr / 1 0 0 / 1
cmo / setatt / motet / itetclr / 1 3 1 / 2
cmo / setatt / motet / itetclr / 10 15 1 / 3
eltset / e1 / itetclr / eq / 1
eltset / e2 / itetclr / eq / 2
eltset / e3 / itetclr / eq / 3
pset / p1 / eltset / e1
pset / p2 / eltset / e2
pset / p3 / eltset / e3
eltset / / list
pset / / list
# write all variations for 3D tet
dump / exo / out_3D_tet_pset_eltset.exo / motet / psets / eltsets /
dump / exo / out_3D_tet_pset.exo / motet / psets / /
dump / exo / out_3D_tet_eltset.exo / motet / / eltsets /
# auto generated facesets
dump/exo/out_3D_tet_all_auto.exo / motet /psets/eltsets/facesets
# define outside faces and write facesets
cmo/copy/motmp/motet
cmo/setatt/motmp itetclr 1; resetpts itp
extract/surfmesh/1 0 0/ mofs / motmp / external
cmo / modatt / mofs / itetclr0 / ioflag / l
cmo / modatt / mofs / itetclr1 / ioflag / l
cmo / modatt / mofs / idelem0 / ioflag / l
cmo / modatt / mofs / facecol / ioflag / l
cmo / modatt / mofs / idface0 / ioflag / l
dump/avs/ out_3d_tet_extract.faceset / mofs / 0 0 0 2
cmo/delete/mofs
cmo/delete/motmp
dump/exo/out_3D_tet_all_extract.exo/motet/psets/eltsets/ &
facesets out_3d_hex_extract.faceset
cmo / delete / motet
# -------------------------------------------------------
# Test 03
# 2D Planar with 16 triangles
# coordz will not be written to the exodus file
cmo / create / motri / / / triplane
createpts / xyz / 4 4 1 / 0. 0. 0. / 1. 1. 0. / 1 1 1
cmo / setatt / motri / imt / 1 0 0 / 1
connect
cmo/setatt/motri/ itetclr 1
resetpts / itp
# set some material values for eltset and pset
cmo / setatt / motri / itetclr / 1 0 0 / 1
cmo / setatt / motri / itetclr / 1 3 1 / 2
cmo / setatt / motri / itetclr / 10 15 1 / 3
eltset / e1 / itetclr / eq / 1
eltset / e2 / itetclr / eq / 2
eltset / e3 / itetclr / eq / 3
pset / p1 / eltset / e1
pset / p2 / eltset / e2
pset / p3 / eltset / e3
eltset / / list
pset / / list
# write all 2D triplane
dump / exo / out_2D_tri_pset_eltset.exo / motri / psets / eltsets /
dump / exo / out_2D_tri_pset.exo / motri / psets / /
dump / exo / out_2D_tri_eltset.exo / motri / / eltsets /
# auto generated facesets
dump/exo/out_2D_tri_all_auto.exo/motri/psets/eltsets/facesets
# define outside boundary and write facesets
cmo/copy/motmp/motri
cmo/setatt/motmp/itetclr 1
resetpts itp
extract/surfmesh/1 0 0/ mofs / motmp / external
cmo / modatt / mofs / itetclr0 / ioflag / l
cmo / modatt / mofs / itetclr1 / ioflag / l
cmo / modatt / mofs / idelem0 / ioflag / l
cmo / modatt / mofs / facecol / ioflag / l
cmo / modatt / mofs / idface0 / ioflag / l
dump/avs/ out_2D_tri_extract.faceset / mofs / 0 0 0 2
cmo/delete/mofs
cmo/delete/motmp
dump/exo/out_2D_tri_all_extract.exo / motri / / /facesets &
out_2D_tri_extract.faceset
cmo/delete/motri
# -------------------------------------------------------
# Test 04
# Single planar tri 2D in 2 Dimensions (XY assumed)
# coordz is NOT written to exodus file
# this is preferred instead of 2D in 3d dim
read input_tri_single.inp motmp
resetpts itp
cmo/status/motri/brief
cmo / create / motri0 / / / triplane
copypts/ motri0 / motmp
cmo delete motmp
cmo/select/motri0
cmo/setatt/motri0/imt/1
connect
cmo/setatt/motri0/itetclr/1
recon 0
resetpts itp
cmo/status/motri0 brief
# auto generated facesets
dump/exo/out_2Dim_auto.exo/motri0 / / /facesets
# define outside faces and write facesets
extract/surfmesh/1 0 0/ mofs / motri0 / external
cmo / modatt / mofs / itetclr0 / ioflag / l
cmo / modatt / mofs / itetclr1 / ioflag / l
cmo / modatt / mofs / idelem0 / ioflag / l
cmo / modatt / mofs / facecol / ioflag / l
cmo / modatt / mofs / idface0 / ioflag / l
dump/avs/ out_sngl0_extract.faceset / mofs / 0 0 0 2
cmo/delete/mofs
dump/exo/out_2Dim_extract.exo / motri0 / / /facesets &
out_sngl0_extract.faceset
# -------------------------------------------------------
# Test 05
# Single tri 2D in 3 Dimensions
# coordz IS written to exodus file
# paraview expects 2D planar with no z values
cmo copy motri motri0
cmo / setatt / motri / ndimensions_geom / 3
cmo / setatt /motri/ zic / 2,2,1 5.
cmo / setatt /motri/ zic / 3,3,1 1.
# auto generated facesets
dump/exo/out_3Dim_auto.exo/motri/ / /facesets
# define outside boundary and write facesets
extract/surfmesh/1 0 0/ mofs / motri / external
cmo / modatt / mofs / itetclr0 / ioflag / l
cmo / modatt / mofs / itetclr1 / ioflag / l
cmo / modatt / mofs / idelem0 / ioflag / l
cmo / modatt / mofs / facecol / ioflag / l
cmo / modatt / mofs / idface0 / ioflag / l
dump/avs/ out_sngl_extract.faceset / mofs / 0 0 0 2
cmo/delete/mofs
dump/exo/out_3Dim_extract.exo / motri / / /facesets &
out_sngl_extract.faceset
finish