FEM: ccx writer, check for empty ccx elset on creation

This commit is contained in:
Bernd Hahnebach
2018-01-23 06:39:12 +01:00
committed by wmayer
parent 05216d3b8a
commit 63eb8f7576

View File

@@ -412,14 +412,11 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
# write ccx_elsets to file
for ccx_elset in self.ccx_elsets:
f.write('*ELSET,ELSET=' + ccx_elset['ccx_elset_name'] + '\n')
if ccx_elset['ccx_elset']:
if isinstance(ccx_elset['ccx_elset'], six.string_types): # use six to be sure to be Python 2.7 and 3.x compatible
f.write(ccx_elset['ccx_elset'] + '\n')
else:
for elid in ccx_elset['ccx_elset']:
f.write(str(elid) + ',\n')
if isinstance(ccx_elset['ccx_elset'], six.string_types): # use six to be sure to be Python 2.7 and 3.x compatible
f.write(ccx_elset['ccx_elset'] + '\n')
else:
f.write('**No elements found for these objects\n')
for elid in ccx_elset['ccx_elset']:
f.write(str(elid) + ',\n')
def write_node_sets_constraints_fixed(self, f):
# get nodes
@@ -1129,14 +1126,15 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
beamsec_ids = set(beamsec_data['FEMElements'])
mat_ids = set(mat_data['FEMElements'])
elset_data = list(sorted(beamsec_ids.intersection(mat_ids))) # empty intersection sets possible
names = [{'short': mat_data['ShortName']}, {'short': beamsec_data['ShortName']}]
ccx_elset = {}
ccx_elset['beamsection_obj'] = beamsec_obj
ccx_elset['ccx_elset'] = elset_data
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_short(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
if elset_data:
names = [{'short': mat_data['ShortName']}, {'short': beamsec_data['ShortName']}]
ccx_elset = {}
ccx_elset['beamsection_obj'] = beamsec_obj
ccx_elset['ccx_elset'] = elset_data
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_short(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
# fluid
def get_ccx_elsets_single_mat_single_fluid(self):
@@ -1188,14 +1186,15 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
fluidsec_ids = set(fluidsec_data['FEMElements'])
mat_ids = set(mat_data['FEMElements'])
elset_data = list(sorted(fluidsec_ids.intersection(mat_ids))) # empty intersection sets possible
names = [{'short': mat_data['ShortName']}, {'short': fluidsec_data['ShortName']}]
ccx_elset = {}
ccx_elset['fluidsection_obj'] = fluidsec_obj
ccx_elset['ccx_elset'] = elset_data
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_short(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
if elset_data:
names = [{'short': mat_data['ShortName']}, {'short': fluidsec_data['ShortName']}]
ccx_elset = {}
ccx_elset['fluidsection_obj'] = fluidsec_obj
ccx_elset['ccx_elset'] = elset_data
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_short(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
# shell
def get_ccx_elsets_single_mat_single_shell(self):
@@ -1247,14 +1246,15 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
shellth_ids = set(shellth_data['FEMElements'])
mat_ids = set(mat_data['FEMElements'])
elset_data = list(sorted(shellth_ids.intersection(mat_ids))) # empty intersection sets possible
names = [{'long': mat_obj.Name, 'short': mat_data['ShortName']}, {'long': shellth_obj.Name, 'short': shellth_data['ShortName']}]
ccx_elset = {}
ccx_elset['shellthickness_obj'] = shellth_obj
ccx_elset['ccx_elset'] = elset_data
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_standard(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
if elset_data:
names = [{'long': mat_obj.Name, 'short': mat_data['ShortName']}, {'long': shellth_obj.Name, 'short': shellth_data['ShortName']}]
ccx_elset = {}
ccx_elset['shellthickness_obj'] = shellth_obj
ccx_elset['ccx_elset'] = ccx_elset
ccx_elset['ccx_elset_name'] = get_ccx_elset_name_standard(names)
ccx_elset['mat_obj_name'] = mat_obj.Name
ccx_elset['ccx_mat_name'] = mat_obj.Material['Name']
self.ccx_elsets.append(ccx_elset)
# solid
def get_ccx_elsets_single_mat_solid(self):