Fem: Update body heat source element getter for CalculiX
This commit is contained in:
@@ -553,13 +553,24 @@ class MeshSetsGetter:
|
||||
# get element ids and write them into the femobj
|
||||
if not self.member.cons_bodyheatsource:
|
||||
return
|
||||
if (
|
||||
len(self.member.cons_bodyheatsource) == 1
|
||||
and not self.member.cons_bodyheatsource[0]["Object"].References
|
||||
):
|
||||
self.member.cons_bodyheatsource[0]["FEMElements"] = self.ccx_evolumes
|
||||
else:
|
||||
self.get_solid_element_sets(self.member.cons_bodyheatsource)
|
||||
if not self.femnodes_mesh:
|
||||
self.femnodes_mesh = self.femmesh.Nodes
|
||||
if not self.femelement_table:
|
||||
self.femelement_table = meshtools.get_femelement_table(self.femmesh)
|
||||
if not self.femnodes_ele_table:
|
||||
self.femnodes_ele_table = meshtools.get_femnodes_ele_table(
|
||||
self.femnodes_mesh, self.femelement_table
|
||||
)
|
||||
|
||||
for femobj in self.member.cons_bodyheatsource:
|
||||
obj = femobj["Object"]
|
||||
print_obj_info(obj)
|
||||
result = []
|
||||
ref_data = meshtools.pair_obj_reference(obj.References)
|
||||
for ref_pair in ref_data:
|
||||
result.append(meshtools.get_ccx_elements(self, ref_pair))
|
||||
|
||||
femobj["BodyHeatSourceElements"] = result
|
||||
|
||||
# ********************************************************************************************
|
||||
# ********************************************************************************************
|
||||
|
||||
@@ -58,12 +58,12 @@ def get_after_write_constraint():
|
||||
|
||||
|
||||
def write_meshdata_constraint(f, femobj, bodyheatsource_obj, ccxwriter):
|
||||
|
||||
f.write(f"*ELSET,ELSET={bodyheatsource_obj.Name}\n")
|
||||
if isinstance(femobj["FEMElements"], str):
|
||||
f.write("{}\n".format(femobj["FEMElements"]))
|
||||
else:
|
||||
for e in femobj["FEMElements"]:
|
||||
f.write(f"{e},\n")
|
||||
for refs, surf, is_sub_el in femobj["BodyHeatSourceElements"]:
|
||||
if not is_sub_el:
|
||||
for elem in surf:
|
||||
f.write(f"{elem},\n")
|
||||
|
||||
|
||||
def write_constraint(f, femobj, bodyheatsource_obj, ccxwriter):
|
||||
|
||||
Reference in New Issue
Block a user