From a99a897ae877fae9361584eebd9c138eeb18135d Mon Sep 17 00:00:00 2001 From: Przemo Firszt Date: Mon, 27 Apr 2015 16:02:19 +0100 Subject: [PATCH] FEM: Rename variables f->elem, inpfile->f The reason behind that change is that auxiliary variables, like a file handle, should not be too visible. inpfile was a good description, but we're handling only one file and there is no need to use a descriptive variable name for it in every function. It's enough that is used in write_calculix_input_file Signed-off-by: Przemo Firszt --- src/Mod/Fem/ccxInpWriter.py | 186 ++++++++++++++++++------------------ 1 file changed, 93 insertions(+), 93 deletions(-) diff --git a/src/Mod/Fem/ccxInpWriter.py b/src/Mod/Fem/ccxInpWriter.py index 21b5e536ed75..136a08e9fa82 100644 --- a/src/Mod/Fem/ccxInpWriter.py +++ b/src/Mod/Fem/ccxInpWriter.py @@ -34,78 +34,78 @@ def write_calculix_input_file(self): inpfile.close() return self.base_name - def write_material_element_sets(self, inpfile): - inpfile.write('\n\n***********************************************************\n') - inpfile.write('** element sets for materials\n') + def write_material_element_sets(self, f): + f.write('\n\n***********************************************************\n') + f.write('** element sets for materials\n') for material_object in self.material_objects: print material_object['Object'].Name, ': ', material_object['Object'].Material['Name'] - inpfile.write('*ELSET,ELSET=' + material_object['Object'].Name + '\n') + f.write('*ELSET,ELSET=' + material_object['Object'].Name + '\n') if len(self.material_objects) == 1: - inpfile.write('Eall\n') + f.write('Eall\n') else: if material_object['Object'].Name == 'MechanicalMaterial': - inpfile.write('Eall\n') - inpfile.write('\n\n') + f.write('Eall\n') + f.write('\n\n') - def write_fixed_node_sets(self, inpfile): - inpfile.write('\n\n***********************************************************\n') - inpfile.write('** node set for fixed constraint\n') + def write_fixed_node_sets(self, f): + f.write('\n\n***********************************************************\n') + f.write('** node set for fixed constraint\n') for fixed_object in self.fixed_objects: print fixed_object['Object'].Name - inpfile.write('*NSET,NSET=' + fixed_object['Object'].Name + '\n') - for o, f in fixed_object['Object'].References: - fo = o.Shape.getElement(f) + f.write('*NSET,NSET=' + fixed_object['Object'].Name + '\n') + for o, elem in fixed_object['Object'].References: + fo = o.Shape.getElement(elem) n = [] if fo.ShapeType == 'Face': - print ' Face Support (fixed face) on: ', f + print ' Face Support (fixed face) on: ', elem n = self.mesh_object.FemMesh.getNodesByFace(fo) elif fo.ShapeType == 'Edge': - print ' Line Support (fixed edge) on: ', f + print ' Line Support (fixed edge) on: ', elem n = self.mesh_object.FemMesh.getNodesByEdge(fo) elif fo.ShapeType == 'Vertex': - print ' Point Support (fixed vertex) on: ', f + print ' Point Support (fixed vertex) on: ', elem n = self.mesh_object.FemMesh.getNodesByVertex(fo) for i in n: - inpfile.write(str(i) + ',\n') - inpfile.write('\n\n') + f.write(str(i) + ',\n') + f.write('\n\n') - def write_load_node_sets(self, inpfile): - inpfile.write('\n\n***********************************************************\n') - inpfile.write('** node sets for loads\n') + def write_load_node_sets(self, f): + f.write('\n\n***********************************************************\n') + f.write('** node sets for loads\n') for force_object in self.force_objects: print force_object['Object'].Name - inpfile.write('*NSET,NSET=' + force_object['Object'].Name + '\n') + f.write('*NSET,NSET=' + force_object['Object'].Name + '\n') NbrForceNodes = 0 - for o, f in force_object['Object'].References: - fo = o.Shape.getElement(f) + for o, elem in force_object['Object'].References: + fo = o.Shape.getElement(elem) n = [] if fo.ShapeType == 'Face': - print ' AreaLoad (face load) on: ', f + print ' AreaLoad (face load) on: ', elem n = self.mesh_object.FemMesh.getNodesByFace(fo) elif fo.ShapeType == 'Edge': - print ' Line Load (edge load) on: ', f + print ' Line Load (edge load) on: ', elem n = self.mesh_object.FemMesh.getNodesByEdge(fo) elif fo.ShapeType == 'Vertex': - print ' Point Load (vertex load) on: ', f + print ' Point Load (vertex load) on: ', elem n = self.mesh_object.FemMesh.getNodesByVertex(fo) for i in n: - inpfile.write(str(i) + ',\n') + f.write(str(i) + ',\n') NbrForceNodes = NbrForceNodes + 1 # NodeSum of mesh-nodes of ALL reference shapes from force_object # calculate node load if NbrForceNodes == 0: print ' Warning --> no FEM-Mesh-node to apply the load to was found?' else: force_object['NodeLoad'] = (force_object['Object'].Force) / NbrForceNodes - inpfile.write('** concentrated load [N] distributed on all mesh nodes of the given shapes\n') - inpfile.write('** ' + str(force_object['Object'].Force) + ' N / ' + str(NbrForceNodes) + ' Nodes = ' + str(force_object['NodeLoad']) + ' N on each node\n') + f.write('** concentrated load [N] distributed on all mesh nodes of the given shapes\n') + f.write('** ' + str(force_object['Object'].Force) + ' N / ' + str(NbrForceNodes) + ' Nodes = ' + str(force_object['NodeLoad']) + ' N on each node\n') if force_object['Object'].Force == 0: print ' Warning --> Force = 0' - inpfile.write('\n\n') + f.write('\n\n') - def write_materials(self, inpfile): - inpfile.write('\n\n***********************************************************\n') - inpfile.write('** materials\n') - inpfile.write('** youngs modulus unit is MPa = N/mm2\n') + def write_materials(self, f): + f.write('\n\n***********************************************************\n') + f.write('** materials\n') + f.write('** youngs modulus unit is MPa = N/mm2\n') for material_object in self.material_objects: # get material properties YM = FreeCAD.Units.Quantity(material_object['Object'].Material['YoungsModulus']) @@ -113,79 +113,79 @@ def write_materials(self, inpfile): PR = float(material_object['Object'].Material['PoissonRatio']) material_name = material_object['Object'].Material['Name'][:80] # write material properties - inpfile.write('*MATERIAL, NAME=' + material_name + '\n') - inpfile.write('*ELASTIC \n') - inpfile.write('{}, '.format(YM_in_MPa)) - inpfile.write('{0:.3f}\n'.format(PR)) + f.write('*MATERIAL, NAME=' + material_name + '\n') + f.write('*ELASTIC \n') + f.write('{}, '.format(YM_in_MPa)) + f.write('{0:.3f}\n'.format(PR)) # write element properties if len(self.material_objects) == 1: - inpfile.write('*SOLID SECTION, ELSET=' + material_object['Object'].Name + ', MATERIAL=' + material_name + '\n\n') + f.write('*SOLID SECTION, ELSET=' + material_object['Object'].Name + ', MATERIAL=' + material_name + '\n\n') else: if material_object['Object'].Name == 'MechanicalMaterial': - inpfile.write('*SOLID SECTION, ELSET=' + material_object['Object'].Name + ', MATERIAL=' + material_name + '\n\n') + f.write('*SOLID SECTION, ELSET=' + material_object['Object'].Name + ', MATERIAL=' + material_name + '\n\n') - def write_step_begin(self, inpfile): - inpfile.write('\n\n\n\n***********************************************************\n') - inpfile.write('** one step is needed to calculate the mechanical analysis of FreeCAD\n') - inpfile.write('** loads are applied quasi-static, means without involving the time dimension\n') - inpfile.write('*STEP\n') - inpfile.write('*STATIC\n\n') + def write_step_begin(self, f): + f.write('\n\n\n\n***********************************************************\n') + f.write('** one step is needed to calculate the mechanical analysis of FreeCAD\n') + f.write('** loads are applied quasi-static, means without involving the time dimension\n') + f.write('*STEP\n') + f.write('*STATIC\n\n') - def write_constraints_fixed(self, inpfile): - inpfile.write('\n** constaints\n') + def write_constraints_fixed(self, f): + f.write('\n** constaints\n') for fixed_object in self.fixed_objects: - inpfile.write('*BOUNDARY\n') - inpfile.write(fixed_object['Object'].Name + ',1\n') - inpfile.write(fixed_object['Object'].Name + ',2\n') - inpfile.write(fixed_object['Object'].Name + ',3\n\n') + f.write('*BOUNDARY\n') + f.write(fixed_object['Object'].Name + ',1\n') + f.write(fixed_object['Object'].Name + ',2\n') + f.write(fixed_object['Object'].Name + ',3\n\n') - def write_constraints_force(self, inpfile): - inpfile.write('\n** loads\n') - inpfile.write('** node loads, see load node sets for how the value is calculated!\n') + def write_constraints_force(self, f): + f.write('\n** loads\n') + f.write('** node loads, see load node sets for how the value is calculated!\n') for force_object in self.force_objects: if 'NodeLoad' in force_object: vec = force_object['Object'].DirectionVector - inpfile.write('*CLOAD\n') - inpfile.write('** force: ' + str(force_object['NodeLoad']) + ' N, direction: ' + str(vec) + '\n') + f.write('*CLOAD\n') + f.write('** force: ' + str(force_object['NodeLoad']) + ' N, direction: ' + str(vec) + '\n') v1 = "{:.15}".format(repr(vec.x * force_object['NodeLoad'])) v2 = "{:.15}".format(repr(vec.y * force_object['NodeLoad'])) v3 = "{:.15}".format(repr(vec.z * force_object['NodeLoad'])) - inpfile.write(force_object['Object'].Name + ',1,' + v1 + '\n') - inpfile.write(force_object['Object'].Name + ',2,' + v2 + '\n') - inpfile.write(force_object['Object'].Name + ',3,' + v3 + '\n\n') + f.write(force_object['Object'].Name + ',1,' + v1 + '\n') + f.write(force_object['Object'].Name + ',2,' + v2 + '\n') + f.write(force_object['Object'].Name + ',3,' + v3 + '\n\n') - def write_outputs_types(self, inpfile): - inpfile.write('\n** outputs --> frd file\n') - inpfile.write('*NODE FILE\n') - inpfile.write('U\n') - inpfile.write('*EL FILE\n') - inpfile.write('S, E\n') - inpfile.write('** outputs --> dat file\n') - inpfile.write('*NODE PRINT , NSET=Nall \n') - inpfile.write('U \n') - inpfile.write('*EL PRINT , ELSET=Eall \n') - inpfile.write('S \n') - inpfile.write('\n\n') + def write_outputs_types(self, f): + f.write('\n** outputs --> frd file\n') + f.write('*NODE FILE\n') + f.write('U\n') + f.write('*EL FILE\n') + f.write('S, E\n') + f.write('** outputs --> dat file\n') + f.write('*NODE PRINT , NSET=Nall \n') + f.write('U \n') + f.write('*EL PRINT , ELSET=Eall \n') + f.write('S \n') + f.write('\n\n') - def write_step_end(self, inpfile): - inpfile.write('*END STEP \n') + def write_step_end(self, f): + f.write('*END STEP \n') - def write_footer(self, inpfile): + def write_footer(self, f): FcVersionInfo = FreeCAD.Version() - inpfile.write('\n\n\n\n***********************************************************\n') - inpfile.write('**\n') - inpfile.write('** CalculiX Inputfile\n') - inpfile.write('**\n') - inpfile.write('** written by --> FreeCAD ' + FcVersionInfo[0] + '.' + FcVersionInfo[1] + '.' + FcVersionInfo[2] + '\n') - inpfile.write('** written on --> ' + time.ctime() + '\n') - inpfile.write('** file name --> ' + os.path.basename(FreeCAD.ActiveDocument.FileName) + '\n') - inpfile.write('** analysis name --> ' + FemGui.getActiveAnalysis().Name + '\n') - inpfile.write('**\n') - inpfile.write('**\n') - inpfile.write('** Units\n') - inpfile.write('**\n') - inpfile.write('** Geometry (mesh data) --> mm\n') - inpfile.write("** Materials (Young's modulus) --> N/mm2 = MPa\n") - inpfile.write('** Loads (nodal loads) --> N\n') - inpfile.write('**\n') - inpfile.write('**\n') + f.write('\n\n\n\n***********************************************************\n') + f.write('**\n') + f.write('** CalculiX Inputfile\n') + f.write('**\n') + f.write('** written by --> FreeCAD ' + FcVersionInfo[0] + '.' + FcVersionInfo[1] + '.' + FcVersionInfo[2] + '\n') + f.write('** written on --> ' + time.ctime() + '\n') + f.write('** file name --> ' + os.path.basename(FreeCAD.ActiveDocument.FileName) + '\n') + f.write('** analysis name --> ' + FemGui.getActiveAnalysis().Name + '\n') + f.write('**\n') + f.write('**\n') + f.write('** Units\n') + f.write('**\n') + f.write('** Geometry (mesh data) --> mm\n') + f.write("** Materials (Young's modulus) --> N/mm2 = MPa\n") + f.write('** Loads (nodal loads) --> N\n') + f.write('**\n') + f.write('**\n')