105 lines
3.7 KiB
Plaintext
Executable File
105 lines
3.7 KiB
Plaintext
Executable File
# Hybrid control volume tests
|
|
# These tests verify the hybrid and nohybrid options of dump / fehm and dump /
|
|
# stor. They also test cmo / addatt / / hybrid_volume, which is closely related.
|
|
# Note: gmv read/write commented out to avoid binary files in testing
|
|
|
|
# Input files:
|
|
# input03.inp
|
|
# input04.inp
|
|
# input08.gmv
|
|
# input09.inp
|
|
|
|
# Output files:
|
|
# out_01.{gmv,stor}
|
|
# out_02.gmv
|
|
# out_03.gmv
|
|
# out_04.{gmv,stor}
|
|
# out_05.stor
|
|
# out_06.stor
|
|
# out_07.stor
|
|
# out_08.stor
|
|
# out_09.gmv
|
|
# out_09_{hybrid,nohybrid}.stor
|
|
# out_11.{gmv,stor}
|
|
# out_11_h.stor
|
|
|
|
# Verify that the sum of the Voronoi volumes, the sum of the hybrid volumes, and
|
|
# the sum of the element volumes are all the same.
|
|
cmo / create / mo1 / / / tet
|
|
createpts / xyz / 11, 11, 11 / 0, 0, 0 / 10, 10, 10 / 1, 1, 1
|
|
connect
|
|
# dump / out_01.gmv / mo1
|
|
dump / stor / out_01 / mo1 / hybrid
|
|
cmo / addatt / mo1 / hybrid_volume / hybrid
|
|
cmo / addatt / mo1 / voronoi_volume / voronoi
|
|
cmo / addatt / mo1 / volume / element_volume
|
|
math / sum / mo1 / total_hybrid_volume / 1 0 0 / mo1 / hybrid
|
|
math / sum / mo1 / total_voronoi_volume / 1 0 0 / mo1 / voronoi
|
|
math / sum / mo1 / total_element_volume / 1 0 0 / mo1 / element_volume
|
|
|
|
# Check that the code gives an error message when given a hex mesh instead of a
|
|
# tet mesh.
|
|
cmo / create / mo2 / / / hex
|
|
createpts / brick / xyz / 11, 11, 11 / 0, 0, 0 / 10, 10, 10 / 1, 1, 1
|
|
# dump / out_02.gmv / mo2
|
|
dump / stor / out_02 / mo2 / hybrid
|
|
|
|
# Check that it gives an error message if it gets a hybrid tet and hex mesh.
|
|
read / input03.inp / mo3
|
|
# dump / out_03.gmv / mo3
|
|
dump / stor / out_03 / mo3 / hybrid
|
|
|
|
# Check that it behaves alright if it gets a 2D (triangular) mesh. Actually
|
|
# right now if the 2D code (matbld2d_stor) is called, it mostly ignores any
|
|
# superfluous arguments passed to it, including "hybrid" and "nohybrid". Ideally
|
|
# it should check the arguments and complain about the ones that don't make
|
|
# sense.
|
|
read / input04.inp / mo4
|
|
# dump / out_04.gmv / mo4
|
|
dump / stor / out_04 / mo4 / hybrid
|
|
dump / stor / out_04 / mo4 / nohybrid
|
|
|
|
# Check that it gives an error message if it is asked to do the hybrid option
|
|
# along with the "none" or "coefs" compression options.
|
|
dump / stor / out_05 / mo1 / none / hybrid
|
|
dump / stor / out_06 / mo1 / coefs / hybrid
|
|
|
|
# Make sure that with the nohybrid option (default), the results haven't changed
|
|
# from previous versions of LaGriT. Actually there should be slight numerical
|
|
# differences because the new code calculates area coefficients in a slightly
|
|
# different way.
|
|
dump / stor / out_07 / mo1
|
|
|
|
finish
|
|
|
|
# Same thing with a much more complicated mesh. We also calculate the volume
|
|
# three different ways (as above) and verify that they all match.
|
|
# read / input08.gmv / mo8
|
|
dump / stor / out_08 / mo8
|
|
cmo / addatt / mo8 / hybrid_volume / hybrid
|
|
cmo / addatt / mo8 / voronoi_volume / voronoi
|
|
cmo / addatt / mo8 / volume / element_volume
|
|
math / sum / mo8 / total_hybrid_volume / 1 0 0 / mo8 / hybrid
|
|
math / sum / mo8 / total_voronoi_volume / 1 0 0 / mo8 / voronoi
|
|
math / sum / mo8 / total_element_volume / 1 0 0 / mo8 / element_volume
|
|
|
|
# Pathological case: Voronoi center lies directly on an edge. In this case the
|
|
# hybrid and nohybrid cases should produce the same results.
|
|
read / input09.inp / mo9
|
|
# dump / out_09.gmv / mo9
|
|
dump / stor / out_09_hybrid / mo9 / hybrid
|
|
dump / stor / out_09_nohybrid / mo9 / nohybrid
|
|
|
|
# Let's run the hybrid code on a non-Delaunay mesh. The code should produce a
|
|
# warning when it detects that the mesh is non-Delaunay.
|
|
cmo / create / mo10 /// hex
|
|
createpts / brick / xyz / 2 2 2 / 0 0 0 / 1 1 10 / 1 1 1
|
|
hextotet / 24 / mo11 / mo10
|
|
cmo / addatt / mo11 / voronoi
|
|
# dump / out_11.gmv / mo11
|
|
|
|
dump / stor / out_11 / mo11
|
|
dump / stor / out_11_h / mo11 / hybrid
|
|
|
|
finish
|