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

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

View File

@@ -0,0 +1,202 @@
# test cmo/addatt compute normals options
# test cmo/addatt/ area_normal and unit_area_normal
* implemented only for xyz, not rtp and rtz
# create the triangles to use for test
# use surface from brick so triangles point in each of 6 directions
cmo / create / mo_hex / / / hex
createpts / brick / xyz / 2 2 2 / 0. 0. 0. / 2. 2. 2. / 1 1 1
extract surfmesh / 1 0 0 / mo_quad / mo_hex / external
resetpts / itp
hextotet / 2 / mo_tri / mo_quad
resetpts / itp
cmo / delete / mo_hex
*********************************************************
# create vector attributes Vunit_anorm and Vanorm
# create three scalar attributes from Vanorm
# Vector of form A[i1 j1 k1 i2 j2 k2 ... in jn kn]
# Scalar from Vector Ai[1-n] Aj[1-n] Ak[1-n]
cmo addatt mo_tri / area / darea
cmo addatt mo_tri / unit_area_normal / Vunit_anorm
cmo addatt mo_tri / area_normal / Vanorm
cmo addatt mo_tri / scalar / x_scalar y_scalar z_scalar / Vanorm
#---------------------------------------------------
# box -z bottom = tri 1,2 v(x,y,z)
cmo printatt mo_tri darea 1,2,1
cmo printatt mo_tri Vunit_anorm 1,2,1
cmo printatt mo_tri Vanorm 1,2,1
cmo printatt mo_tri x_scalar 1,2,1
cmo printatt mo_tri y_scalar 1,2,1
cmo printatt mo_tri z_scalar 1,2,1
#---------------------------------------------------
# box +z top = tri 3,4 v(x,y,z)
cmo printatt mo_tri darea 3,4,1
cmo printatt mo_tri Vunit_anorm 3,4,1
cmo printatt mo_tri Vanorm 3,4,1
cmo printatt mo_tri x_scalar 3,4,1
cmo printatt mo_tri y_scalar 3,4,1
cmo printatt mo_tri z_scalar 3,4,1
#---------------------------------------------------
# box -y front = tri 5,6 v(x,y,z)
cmo printatt mo_tri darea 5,6,1
cmo printatt mo_tri Vunit_anorm 5,6,1
cmo printatt mo_tri Vanorm 5,6,1
cmo printatt mo_tri x_scalar 5,6,1
cmo printatt mo_tri y_scalar 5,6,1
cmo printatt mo_tri z_scalar 5,6,1
#---------------------------------------------------
# box +y back = tri 9,10 v(x,y,z)
cmo printatt mo_tri darea 9,10,1
cmo printatt mo_tri Vunit_anorm 9,10,1
cmo printatt mo_tri Vanorm 9,10,1
cmo printatt mo_tri x_scalar 9,10,1
cmo printatt mo_tri y_scalar 9,10,1
cmo printatt mo_tri z_scalar 9,10,1
#---------------------------------------------------
# box +x right = tri 7,8 v(x,y,z)
cmo printatt mo_tri darea 7,8,1
cmo printatt mo_tri Vunit_anorm 7,8,1
cmo printatt mo_tri Vanorm 7,8,1
cmo printatt mo_tri x_scalar 7,8,1
cmo printatt mo_tri y_scalar 7,8,1
cmo printatt mo_tri z_scalar 7,8,1
#---------------------------------------------------
# box -x left = tri 11,12 v(x,y,z)
cmo printatt mo_tri darea 11,12,1
cmo printatt mo_tri Vunit_anorm 11,12,1
cmo printatt mo_tri Vanorm 11,12,1
cmo printatt mo_tri x_scalar 11,12,1
cmo printatt mo_tri y_scalar 11,12,1
cmo printatt mo_tri z_scalar 11,12,1
#---------------------------------------------------
# remove dump/avs as it can not write array of 3x nodes
#################################################
# test synthetic normal on vertices (nodes)
#
# These do not work since quads are not supported
# Should return with ADDATT error
#
cmo / addatt / mo_quad / synth_normal
cmo / addatt / mo_quad / synth_normal_area
cmo / addatt / mo_quad / synth_normal_angle
#
# The commands below should work for triangles
# copy attributes and save so not overwritten each call
cmo/addatt/mo_tri/xsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_angle/vdouble/scalar/nnodes/-def-/permanent
#
cmo / addatt / mo_tri / synth_normal
cmo/copyatt/mo_tri mo_tri/ xsynth x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth z_n_norm
cmo / addatt / mo_tri / synth_normal_area
cmo/copyatt/mo_tri mo_tri/ xsynth_area x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth_area y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth_area z_n_norm
cmo / addatt / mo_tri / synth_normal_angle
cmo/copyatt/mo_tri mo_tri/ xsynth_angle x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth_angle y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth_angle z_n_norm
#
# Try something that uses synthetic normal
#
cmo copy mo_tri2 mo_tri
offsetsurf / mo_tri_off / mo_tri2 / 0.1
# report attributes from cmo/addatt and from offset
cmo / printatt / mo_tri / -all- minmax
cmo / printatt / mo_tri2 / -all- minmax
# report all mesh objects and their attributes
cmo / status
# finish
cmo delete mo_tri
############################################
## full test includes surface from sphere ###
#
# Compute normals to exterior surface of a sphere
#
cmo/create/cmo_tet
createpts/sphere/1/2/500/0.5,1.0/0.,0.,0./0
filter/1,0,0
rmpoint / compress
cmo / setatt / cmo_tet / imt / 1 0 0 / 1
cmo / setatt / cmo_tet / itp / 1 0 0 / 0
connect
cmo / setatt / cmo_tet / itetclr / 1 0 0 / 1
resetpts / itp
extract/surfmesh/1,0,0/mo_tri/cmo_tet
cmo select mo_tri
resetpts itp
# create vector attributes Vunit_anorm and Vanorm
# create three scalar attributes from Vanorm
# Vector of form A[i1 j1 k1 i2 j2 k2 ... in jn kn]
# Scalar from Vector Ai[1-n] Aj[1-n] Ak[1-n]
cmo addatt mo_tri / area / darea
cmo addatt mo_tri / unit_area_normal / Vunit_anorm
cmo addatt mo_tri / area_normal / Vanorm
cmo addatt mo_tri / scalar / x_scalar y_scalar z_scalar / Vanorm
# create synthetic normals on vertices (nodes)
# copy attributes and save so not overwritten each call
cmo/addatt/mo_tri/xsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo / addatt / mo_tri / synth_normal
cmo/copyatt/mo_tri mo_tri/ xsynth x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth z_n_norm
cmo / addatt / mo_tri / synth_normal_area
cmo/copyatt/mo_tri mo_tri/ xsynth_area x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth_area y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth_area z_n_norm
cmo / addatt / mo_tri / synth_normal_angle
cmo/copyatt/mo_tri mo_tri/ xsynth_angle x_n_norm
cmo/copyatt/mo_tri mo_tri/ ysynth_angle y_n_norm
cmo/copyatt/mo_tri mo_tri/ zsynth_angle z_n_norm
#### write cmo information for all the mesh objects ####
cmo status
cmo printatt mo_tri -all- minmax
# ERROR dumpavs: vector output not supported.
cmo/DELATT/mo_tri Vunit_anorm
cmo/DELATT/mo_tri Vanorm
dump/avs/output_sphere_normals.inp / mo_tri
## Done.
finish

View File

@@ -0,0 +1,120 @@
cmo/create/mo_hex///hex
createpts/brick/xyz/2 2 2/0. 0. 0./2. 2. 2./1 1 1
extract surfmesh/1 0 0/mo_quad/mo_hex/external
resetpts/itp
hextotet/2/mo_tri/mo_quad
resetpts/itp
cmo/delete/mo_hex
cmo addatt mo_tri/area/darea
cmo addatt mo_tri/unit_area_normal/Vunit_anorm
cmo addatt mo_tri/area_normal/Vanorm
cmo addatt mo_tri/scalar/x_scalar y_scalar z_scalar/Vanorm
cmo printatt mo_tri darea 1,2,1
cmo printatt mo_tri Vunit_anorm 1,2,1
cmo printatt mo_tri Vanorm 1,2,1
cmo printatt mo_tri x_scalar 1,2,1
cmo printatt mo_tri y_scalar 1,2,1
cmo printatt mo_tri z_scalar 1,2,1
cmo printatt mo_tri darea 3,4,1
cmo printatt mo_tri Vunit_anorm 3,4,1
cmo printatt mo_tri Vanorm 3,4,1
cmo printatt mo_tri x_scalar 3,4,1
cmo printatt mo_tri y_scalar 3,4,1
cmo printatt mo_tri z_scalar 3,4,1
cmo printatt mo_tri darea 5,6,1
cmo printatt mo_tri Vunit_anorm 5,6,1
cmo printatt mo_tri Vanorm 5,6,1
cmo printatt mo_tri x_scalar 5,6,1
cmo printatt mo_tri y_scalar 5,6,1
cmo printatt mo_tri z_scalar 5,6,1
cmo printatt mo_tri darea 9,10,1
cmo printatt mo_tri Vunit_anorm 9,10,1
cmo printatt mo_tri Vanorm 9,10,1
cmo printatt mo_tri x_scalar 9,10,1
cmo printatt mo_tri y_scalar 9,10,1
cmo printatt mo_tri z_scalar 9,10,1
cmo printatt mo_tri darea 7,8,1
cmo printatt mo_tri Vunit_anorm 7,8,1
cmo printatt mo_tri Vanorm 7,8,1
cmo printatt mo_tri x_scalar 7,8,1
cmo printatt mo_tri y_scalar 7,8,1
cmo printatt mo_tri z_scalar 7,8,1
cmo printatt mo_tri darea 11,12,1
cmo printatt mo_tri Vunit_anorm 11,12,1
cmo printatt mo_tri Vanorm 11,12,1
cmo printatt mo_tri x_scalar 11,12,1
cmo printatt mo_tri y_scalar 11,12,1
cmo printatt mo_tri z_scalar 11,12,1
cmo/addatt/mo_quad/synth_normal
cmo/addatt/mo_quad/synth_normal_area
cmo/addatt/mo_quad/synth_normal_angle
cmo/addatt/mo_tri/xsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/synth_normal
cmo/copyatt/mo_tri mo_tri/xsynth x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth z_n_norm
cmo/addatt/mo_tri/synth_normal_area
cmo/copyatt/mo_tri mo_tri/xsynth_area x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth_area y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth_area z_n_norm
cmo/addatt/mo_tri/synth_normal_angle
cmo/copyatt/mo_tri mo_tri/xsynth_angle x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth_angle y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth_angle z_n_norm
cmo copy mo_tri2 mo_tri
offsetsurf/mo_tri_off/mo_tri2/0.1
cmo/printatt/mo_tri/-all- minmax
cmo/printatt/mo_tri2/-all- minmax
cmo/status
cmo delete mo_tri
cmo/create/cmo_tet
createpts/sphere/1/2/500/0.5,1.0/0.,0.,0./0
filter/1,0,0
rmpoint/compress
cmo/setatt/cmo_tet/imt/1 0 0/1
cmo/setatt/cmo_tet/itp/1 0 0/0
connect
cmo/setatt/cmo_tet/itetclr/1 0 0/1
resetpts/itp
extract/surfmesh/1,0,0/mo_tri/cmo_tet
cmo select mo_tri
resetpts itp
cmo addatt mo_tri/area/darea
cmo addatt mo_tri/unit_area_normal/Vunit_anorm
cmo addatt mo_tri/area_normal/Vanorm
cmo addatt mo_tri/scalar/x_scalar y_scalar z_scalar/Vanorm
cmo/addatt/mo_tri/xsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_area/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/xsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/ysynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/zsynth_angle/vdouble/scalar/nnodes/-def-/permanent
cmo/addatt/mo_tri/synth_normal
cmo/copyatt/mo_tri mo_tri/xsynth x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth z_n_norm
cmo/addatt/mo_tri/synth_normal_area
cmo/copyatt/mo_tri mo_tri/xsynth_area x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth_area y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth_area z_n_norm
cmo/addatt/mo_tri/synth_normal_angle
cmo/copyatt/mo_tri mo_tri/xsynth_angle x_n_norm
cmo/copyatt/mo_tri mo_tri/ysynth_angle y_n_norm
cmo/copyatt/mo_tri mo_tri/zsynth_angle z_n_norm
cmo status
cmo printatt mo_tri -all- minmax
cmo/DELATT/mo_tri Vunit_anorm
cmo/DELATT/mo_tri Vanorm
dump/avs/output_sphere_normals.inp/mo_tri
finish

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB