diff --git a/src/Mod/Fem/femsolver/calculix/tasks.py b/src/Mod/Fem/femsolver/calculix/tasks.py index d2b700d33f..c1be39c03b 100644 --- a/src/Mod/Fem/femsolver/calculix/tasks.py +++ b/src/Mod/Fem/femsolver/calculix/tasks.py @@ -58,28 +58,11 @@ class Prepare(run.Prepare): def run(self): global _inputFileName self.pushStatus("Preparing input files...\n") - c = membertools.AnalysisMember(self.analysis) w = writer.FemInputWriterCcx( self.analysis, self.solver, membertools.get_mesh_to_solve(self.analysis)[0], # pre check has been done already - c.mats_linear, - c.mats_nonlinear, - c.cons_fixed, - c.cons_displacement, - c.cons_contact, - c.cons_planerotation, - c.cons_transform, - c.cons_selfweight, - c.cons_force, - c.cons_pressure, - c.cons_temperature, - c.cons_heatflux, - c.cons_initialtemperature, - c.geos_beamsection, - c.geos_beamrotation, - c.geos_shellthickness, - c.geos_fluidsection, + membertools.AnalysisMember(self.analysis), self.directory ) path = w.write_calculix_input_file() diff --git a/src/Mod/Fem/femsolver/calculix/writer.py b/src/Mod/Fem/femsolver/calculix/writer.py index 754a630a48..2db7ee84dc 100644 --- a/src/Mod/Fem/femsolver/calculix/writer.py +++ b/src/Mod/Fem/femsolver/calculix/writer.py @@ -44,23 +44,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter): analysis_obj, solver_obj, mesh_obj, - matlin_obj, - matnonlin_obj, - fixed_obj, - displacement_obj, - contact_obj, - planerotation_obj, - transform_obj, - selfweight_obj, - force_obj, - pressure_obj, - temperature_obj, - heatflux_obj, - initialtemperature_obj, - beamsection_obj, - beamrotation_obj, - shellthickness_obj, - fluidsection_obj, + member, dir_name=None ): writerbase.FemInputWriter.__init__( @@ -68,23 +52,7 @@ class FemInputWriterCcx(writerbase.FemInputWriter): analysis_obj, solver_obj, mesh_obj, - matlin_obj, - matnonlin_obj, - fixed_obj, - displacement_obj, - contact_obj, - planerotation_obj, - transform_obj, - selfweight_obj, - force_obj, - pressure_obj, - temperature_obj, - heatflux_obj, - initialtemperature_obj, - beamsection_obj, - beamrotation_obj, - shellthickness_obj, - fluidsection_obj, + member, dir_name ) from os.path import join diff --git a/src/Mod/Fem/femsolver/writerbase.py b/src/Mod/Fem/femsolver/writerbase.py index 36e08b3571..d84ce1547a 100644 --- a/src/Mod/Fem/femsolver/writerbase.py +++ b/src/Mod/Fem/femsolver/writerbase.py @@ -39,23 +39,7 @@ class FemInputWriter(): analysis_obj, solver_obj, mesh_obj, - matlin_obj, - matnonlin_obj, - fixed_obj, - displacement_obj, - contact_obj, - planerotation_obj, - transform_obj, - selfweight_obj, - force_obj, - pressure_obj, - temperature_obj, - heatflux_obj, - initialtemperature_obj, - beamsection_obj, - beamrotation_obj, - shellthickness_obj, - fluidsection_obj, + member, dir_name=None ): # class attributes from parameter values @@ -63,23 +47,27 @@ class FemInputWriter(): self.solver_obj = solver_obj self.analysis_type = self.solver_obj.AnalysisType self.mesh_object = mesh_obj - self.material_objects = matlin_obj - self.material_nonlinear_objects = matnonlin_obj - self.fixed_objects = fixed_obj - self.displacement_objects = displacement_obj - self.contact_objects = contact_obj - self.planerotation_objects = planerotation_obj - self.transform_objects = transform_obj - self.selfweight_objects = selfweight_obj - self.force_objects = force_obj - self.pressure_objects = pressure_obj - self.temperature_objects = temperature_obj - self.heatflux_objects = heatflux_obj - self.initialtemperature_objects = initialtemperature_obj - self.beamsection_objects = beamsection_obj - self.beamrotation_objects = beamrotation_obj - self.fluidsection_objects = fluidsection_obj - self.shellthickness_objects = shellthickness_obj + # materials + self.material_objects = member.mats_linear + self.material_nonlinear_objects = member.mats_nonlinear + # geometries + self.beamsection_objects = member.geos_beamsection + self.beamrotation_objects = member.geos_beamrotation + self.fluidsection_objects = member.geos_fluidsection + self.shellthickness_objects = member.geos_shellthickness + # constraints + self.contact_objects = member.cons_contact + self.displacement_objects = member.cons_displacement + self.fixed_objects = member.cons_fixed + self.force_objects = member.cons_force + self.heatflux_objects = member.cons_heatflux + self.initialtemperature_objects = member.cons_initialtemperature + self.planerotation_objects = member.cons_planerotation + self.pressure_objects = member.cons_pressure + self.selfweight_objects = member.cons_selfweight + self.temperature_objects = member.cons_temperature + self.transform_objects = member.cons_transform + # working dir self.dir_name = dir_name # if dir_name was not given or if it exists but isn't empty: create a temporary dir # Purpose: makes sure the analysis can be run even on wired situation diff --git a/src/Mod/Fem/femsolver/z88/tasks.py b/src/Mod/Fem/femsolver/z88/tasks.py index 538cae122d..2192930caf 100644 --- a/src/Mod/Fem/femsolver/z88/tasks.py +++ b/src/Mod/Fem/femsolver/z88/tasks.py @@ -52,28 +52,11 @@ class Prepare(run.Prepare): def run(self): self.pushStatus("Preparing input files...\n") - c = membertools.AnalysisMember(self.analysis) w = writer.FemInputWriterZ88( self.analysis, self.solver, membertools.get_mesh_to_solve(self.analysis)[0], # pre check has been done already - c.mats_linear, - c.mats_nonlinear, - c.cons_fixed, - c.cons_displacement, - c.cons_contact, - c.cons_planerotation, - c.cons_transform, - c.cons_selfweight, - c.cons_force, - c.cons_pressure, - c.cons_temperature, - c.cons_heatflux, - c.cons_initialtemperature, - c.geos_beamsection, - c.geos_beamrotation, - c.geos_shellthickness, - c.geos_fluidsection, + membertools.AnalysisMember(self.analysis), self.directory ) path = w.write_z88_input() diff --git a/src/Mod/Fem/femsolver/z88/writer.py b/src/Mod/Fem/femsolver/z88/writer.py index 40229fd53e..ecb8195273 100644 --- a/src/Mod/Fem/femsolver/z88/writer.py +++ b/src/Mod/Fem/femsolver/z88/writer.py @@ -39,23 +39,7 @@ class FemInputWriterZ88(FemInputWriter.FemInputWriter): analysis_obj, solver_obj, mesh_obj, - matlin_obj, - matnonlin_obj, - fixed_obj, - displacement_obj, - contact_obj, - planerotation_obj, - transform_obj, - selfweight_obj, - force_obj, - pressure_obj, - temperature_obj, - heatflux_obj, - initialtemperature_obj, - beamsection_obj, - beamrotation_obj, - shellthickness_obj, - fluidsection_obj, + member, dir_name=None ): FemInputWriter.FemInputWriter.__init__( @@ -63,23 +47,7 @@ class FemInputWriterZ88(FemInputWriter.FemInputWriter): analysis_obj, solver_obj, mesh_obj, - matlin_obj, - matnonlin_obj, - fixed_obj, - displacement_obj, - contact_obj, - planerotation_obj, - transform_obj, - selfweight_obj, - force_obj, - pressure_obj, - temperature_obj, - heatflux_obj, - initialtemperature_obj, - beamsection_obj, - beamrotation_obj, - shellthickness_obj, - fluidsection_obj, + member, dir_name ) from os.path import join diff --git a/src/Mod/Fem/femtools/ccxtools.py b/src/Mod/Fem/femtools/ccxtools.py index e8969c1ec1..e71e289fa4 100644 --- a/src/Mod/Fem/femtools/ccxtools.py +++ b/src/Mod/Fem/femtools/ccxtools.py @@ -670,23 +670,7 @@ class FemToolsCcx(QtCore.QRunnable, QtCore.QObject): self.analysis, self.solver, self.mesh, - self.member.mats_linear, - self.member.mats_nonlinear, - self.member.cons_fixed, - self.member.cons_displacement, - self.member.cons_contact, - self.member.cons_planerotation, - self.member.cons_transform, - self.member.cons_selfweight, - self.member.cons_force, - self.member.cons_pressure, - self.member.cons_temperature, - self.member.cons_heatflux, - self.member.cons_initialtemperature, - self.member.geos_beamsection, - self.member.geos_beamrotation, - self.member.geos_shellthickness, - self.member.geos_fluidsection, + self.member, self.working_dir ) self.inp_file_name = inp_writer.write_calculix_input_file()