@@ -291,6 +291,56 @@ proc Kratos::GetMeshBasicData { } {
291291 return $result
292292}
293293
294+ proc Kratos::CheckMeshCriteria { elementsize } {
295+
296+ set force_mesh_order [dict create]
297+ set elements_used [spdAux::GetUsedElements]
298+ set forced_mesh_order -1
299+ foreach element_id $elements_used {
300+ set element [Model::getElement $element_id ]
301+ if {[$element hasAttribute " MeshOrder" ]} {
302+ set element_forces [$element getAttribute " MeshOrder" ]
303+ if {$element_forces eq " Quadratic" } {
304+ set element_forces 1
305+ } else {
306+ set element_forces 0
307+ }
308+ dict set force_mesh_order $element_id $element_forces
309+ if {$forced_mesh_order eq -1} {
310+ set forced_mesh_order $element_forces
311+ } else {
312+ if {$forced_mesh_order ne $element_forces } {
313+ # W "The element $element_id requires a different mesh order"
314+ error " Incompatible mesh orders in elements"
315+ }
316+ }
317+ }
318+ }
319+
320+ if {$forced_mesh_order ne -1} {
321+
322+ set element [lindex [dict keys $force_mesh_order ] 0]
323+ set previous_mesh_order [write::isquadratic]
324+ set current_mesh_type [Kratos::GetMeshOrderName $previous_mesh_order ]
325+ set desired_mesh_type [Kratos::GetMeshOrderName $forced_mesh_order ]
326+ if {$previous_mesh_order ne $forced_mesh_order } {
327+ W " The element $element requires a different mesh order: $desired_mesh_type "
328+ W " Currently the mesh order is $current_mesh_type . please change it in the menu Mesh > Quadratic type"
329+ return -1
330+ }
331+ }
332+ return 0
333+ }
334+
335+ proc Kratos::GetMeshOrderName {order} {
336+ switch $order {
337+ 0 {return " Linear" }
338+ 1 {return " Quadratic" }
339+ 2 {return " Quadratic9" }
340+ default {return " Unknown" }
341+ }
342+ }
343+
294344proc Kratos::SetMeshCriteria { elementsize } {
295345
296346 set force_mesh_order [dict create]
0 commit comments