diff --git a/src/Mod/Fem/FemInputWriter.py b/src/Mod/Fem/FemInputWriter.py index 8a34560377..06c7b15b08 100644 --- a/src/Mod/Fem/FemInputWriter.py +++ b/src/Mod/Fem/FemInputWriter.py @@ -70,7 +70,11 @@ class FemInputWriter(): if not os.path.isdir(self.dir_name): os.mkdir(self.dir_name) self.fc_ver = FreeCAD.Version() + self.ccx_nall = 'Nall' self.ccx_eall = 'Eall' + self.ccx_evolumes = 'Evolumes' + self.ccx_efaces = 'Efaces' + self.ccx_eedges = 'Eedges' self.ccx_elsets = [] self.femmesh = self.mesh_object.FemMesh self.femnodes_mesh = {} diff --git a/src/Mod/Fem/FemInputWriterCcx.py b/src/Mod/Fem/FemInputWriterCcx.py index 7b78c416de..1559adee65 100644 --- a/src/Mod/Fem/FemInputWriterCcx.py +++ b/src/Mod/Fem/FemInputWriterCcx.py @@ -594,7 +594,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): f.write('*INITIAL CONDITIONS,TYPE=TEMPERATURE\n') for itobj in self.initialtemperature_objects: # Should only be one inittemp_obj = itobj['Object'] - f.write('Nall,{}\n'.format(inittemp_obj.initialTemperature)) # OvG: Initial temperature + f.write('{0},{1}\n'.format(self.ccx_nall, inittemp_obj.initialTemperature)) # OvG: Initial temperature def write_femelementsets(self, f): f.write('\n***********************************************************\n') @@ -836,7 +836,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): selwei_obj = femobj['Object'] f.write('** ' + selwei_obj.Label + '\n') f.write('*DLOAD\n') - f.write('Eall,GRAV,9810,' + str(selwei_obj.Gravity_x) + ',' + str(selwei_obj.Gravity_y) + ',' + str(selwei_obj.Gravity_z) + '\n') + f.write(self.ccx_eall + ',GRAV,9810,' + str(selwei_obj.Gravity_x) + ',' + str(selwei_obj.Gravity_y) + ',' + str(selwei_obj.Gravity_z) + '\n') f.write('\n') # grav (erdbeschleunigung) is equal for all elements # should be only one constraint @@ -1005,9 +1005,9 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): else: f.write('S, E\n') f.write('** outputs --> dat file\n') - f.write('*NODE PRINT , NSET=Nall \n') + f.write('*NODE PRINT , NSET=' + self.ccx_nall + '\n') f.write('U \n') - f.write('*EL PRINT , ELSET=Eall \n') + f.write('*EL PRINT , ELSET=' + self.ccx_eall + '\n') f.write('S \n') def write_step_end(self, f): @@ -1036,7 +1036,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): # self.ccx_elsets = [ { # 'beamsection_obj' : 'beamsection_obj' if exists # 'shellthickness_obj' : shellthickness_obj' if exists - # 'ccx_elset' : [e1, e2, e3, ... , en] or string self.ccx_eall + # 'ccx_elset' : [e1, e2, e3, ... , en] or elements set name strings # 'ccx_elset_name' : 'ccx_identifier_elset' # 'mat_obj_name' : 'mat_obj.Name' # 'ccx_mat_name' : 'mat_obj.Material['Name']' !!! not unique !!! @@ -1047,7 +1047,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): beamsec_obj = self.beamsection_objects[0]['Object'] ccx_elset = {} ccx_elset['beamsection_obj'] = beamsec_obj - ccx_elset['ccx_elset'] = self.ccx_eall + ccx_elset['ccx_elset'] = self.ccx_eedges ccx_elset['ccx_elset_name'] = get_ccx_elset_beam_name(mat_obj.Name, beamsec_obj.Name) ccx_elset['mat_obj_name'] = mat_obj.Name ccx_elset['ccx_mat_name'] = mat_obj.Material['Name'] @@ -1058,7 +1058,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): fluidsec_obj = self.fluidsection_objects[0]['Object'] ccx_elset = {} ccx_elset['fluidsection_obj'] = fluidsec_obj - ccx_elset['ccx_elset'] = self.ccx_eall + ccx_elset['ccx_elset'] = self.ccx_eedges ccx_elset['ccx_elset_name'] = get_ccx_elset_fluid_name(mat_obj.Name, fluidsec_obj.Name) ccx_elset['mat_obj_name'] = mat_obj.Name ccx_elset['ccx_mat_name'] = mat_obj.Material['Name'] @@ -1069,7 +1069,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): shellth_obj = self.shellthickness_objects[0]['Object'] ccx_elset = {} ccx_elset['shellthickness_obj'] = shellth_obj - ccx_elset['ccx_elset'] = self.ccx_eall + ccx_elset['ccx_elset'] = self.ccx_efaces ccx_elset['ccx_elset_name'] = get_ccx_elset_shell_name(mat_obj.Name, shellth_obj.Name) ccx_elset['mat_obj_name'] = mat_obj.Name ccx_elset['ccx_mat_name'] = mat_obj.Material['Name'] @@ -1078,7 +1078,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter): def get_ccx_elsets_single_mat_solid(self): mat_obj = self.material_objects[0]['Object'] ccx_elset = {} - ccx_elset['ccx_elset'] = self.ccx_eall + ccx_elset['ccx_elset'] = self.ccx_evolumes ccx_elset['ccx_elset_name'] = get_ccx_elset_solid_name(mat_obj.Name) ccx_elset['mat_obj_name'] = mat_obj.Name ccx_elset['ccx_mat_name'] = mat_obj.Material['Name'] diff --git a/src/Mod/Fem/test_files/ccx/cube_frequency.inp b/src/Mod/Fem/test_files/ccx/cube_frequency.inp index 3b26ba7bbc..cfe7a7682d 100644 --- a/src/Mod/Fem/test_files/ccx/cube_frequency.inp +++ b/src/Mod/Fem/test_files/ccx/cube_frequency.inp @@ -426,7 +426,7 @@ Evolumes ** Element sets for materials and FEM element type (solid, shell, beam, fluid) ** written by write_element_sets_material_and_femelement_type function *ELSET,ELSET=MechanicalMaterialSolid -Eall +Evolumes *********************************************************** ** Node sets for fixed constraint @@ -519,9 +519,9 @@ U *EL FILE S, E ** outputs --> dat file -*NODE PRINT , NSET=Nall +*NODE PRINT , NSET=Nall U -*EL PRINT , ELSET=Eall +*EL PRINT , ELSET=Eall S *********************************************************** diff --git a/src/Mod/Fem/test_files/ccx/cube_static.inp b/src/Mod/Fem/test_files/ccx/cube_static.inp index fbbbdd28a9..a57c006aa5 100644 --- a/src/Mod/Fem/test_files/ccx/cube_static.inp +++ b/src/Mod/Fem/test_files/ccx/cube_static.inp @@ -426,7 +426,7 @@ Evolumes ** Element sets for materials and FEM element type (solid, shell, beam, fluid) ** written by write_element_sets_material_and_femelement_type function *ELSET,ELSET=MechanicalMaterialSolid -Eall +Evolumes *********************************************************** ** Node sets for fixed constraint @@ -588,9 +588,9 @@ U *EL FILE S, E ** outputs --> dat file -*NODE PRINT , NSET=Nall +*NODE PRINT , NSET=Nall U -*EL PRINT , ELSET=Eall +*EL PRINT , ELSET=Eall S *********************************************************** diff --git a/src/Mod/Fem/test_files/ccx/spine_thermomech.inp b/src/Mod/Fem/test_files/ccx/spine_thermomech.inp index 4a0b616b63..7cdbccc84b 100644 --- a/src/Mod/Fem/test_files/ccx/spine_thermomech.inp +++ b/src/Mod/Fem/test_files/ccx/spine_thermomech.inp @@ -74,7 +74,7 @@ Evolumes ** Element sets for materials and FEM element type (solid, shell, beam, fluid) ** written by write_element_sets_material_and_femelement_type function *ELSET,ELSET=MechanicalMaterialSolid -Eall +Evolumes *********************************************************** ** Node sets for fixed constraint @@ -197,9 +197,9 @@ U, NT *EL FILE S, E ** outputs --> dat file -*NODE PRINT , NSET=Nall +*NODE PRINT , NSET=Nall U -*EL PRINT , ELSET=Eall +*EL PRINT , ELSET=Eall S ***********************************************************