Week - 11 - Element quality check
set top .window
catch {destroy $top}
toplevel $top -class Toplevel
wm title $top "Quality check"
wm geometry $top 500x500+100+50
wm resizable $top 0 0
wm deiconify $top
button $top.01 -text "warpage" -command {warpage $w}; place $top.01 -x 10 -y 10
entry $top.02 -textvariable w; place $top.02 -x 100 -y 10
button $top.03 -text "Aspect ratio" -command {aspect $as}; place $top.03 -x 10 -y 30
entry $top.04 -textvariable as; place $top.04 -x 100 -y 30
button $top.05 -text "Jacobian" -command {jacobian $j}; place $top.05 -x 10 -y 50
entry $top.06 -textvariable j;
place $top.06 -x 100 -y 50
button $top.07 -text "skewness" -command {skew $sk}; place $top.07 -x 10 -y 70
entry $top.08 -textvariable sk; place $top.08 -x 100 -y 70
button $top.09 -text "Min.Length" -command {minl $mil}; place $top.09 -x 10 -y 90
entry $top.10 -textvariable mil; place $top.10 -x 100 -y 90
button $top.11 -text "Max.Length" -command {maxl $mal}; place $top.11 -x 10 -y 110
entry $top.12 -textvariable mal; place $top.12 -x 100 -y 110
button $top.13 -text "Min.Angle.Tria" -command {miat $mit}; place $top.13 -x 10 -y 130
entry $top.14 -textvariable mit; place $top.14 -x 100 -y 130
button $top.15 -text "Max.Angle.Tria" -command {mat $mat}; place $top.15 -x 10 -y 150
entry $top.16 -textvariable mat; place $top.16 -x 100 -y 150
button $top.17 -text "Min.Angle.Quad" -command {miq $miq}; place $top.17 -x 10 -y 170
entry $top.18 -textvariable miq; place $top.18 -x 100 -y 170
button $top.19 -text "Max.Angle.Quad" -command {maq $maq}; place $top.19 -x 10 -y 190
entry $top.20 -textvariable maq; place $top.20 -x 100 -y 190
button $top.21 -text "Tetcollapse" -command {tet $t}; place $top.21 -x 10 -y 210
entry $top.22 -textvariable t; place $top.22 -x 100 -y 210
proc warpage {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestwarpage elements 1 $a 2 2 0 " 2D warpage "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc aspect {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestaspect elements 1 $a 2 2 0 " 2D Aspect Ratio "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc jacobian {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestjacobian elements 1 $a 2 2 0 " 2D Jacobian "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc skew {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestskew elements 1 $a 2 2 0 " 2D Skew "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc minl {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestlength elements 1 $a 2 1 2 0 " 2D Length < "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc maxl {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestlength elements 1 $a 2 0 2 0 " 2D Length > "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc miat {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $a 1 2 1 2 0 " 2D Tria Min Angle "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc mat {a} {
*clearmarkall 1; *clearmarkall 2;
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $a 1 2 0 2 0 " 2D Tria Max Angle "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*createmark nodes 1
*nodemarkaddtempmark 1
*unmaskall2
}
proc miq {a} {
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $a 0 2 1 2 0 " 2D Quad Min Angle "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc maq {a} {
*createmark elements 1 "displayed"
*elementtestinterangle elements 1 $a 0 2 0 2 0 " 2D Quad Max Angle "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}
proc tet {a} {
*createmark elements 1 "displayed"
*elementtesttetracollapse elements 1 $a 2 0 " 3D Tetra Collapse "
*maskentitymark elements 2 0
*maskreverse elements
*createmark nodes 1 "displayed"
*nodemarkaddtempmark 1
*unmaskall2
}