FEM: beam rotation object, add it to the solver frame works

This commit is contained in:
Bernd Hahnebach
2018-01-23 06:39:25 +01:00
committed by wmayer
parent 4ac2f2d37a
commit fa596b891e
6 changed files with 27 additions and 8 deletions

View File

@@ -66,7 +66,7 @@ class Prepare(run.Prepare):
c.selfweight_constraints, c.force_constraints,
c.pressure_constraints, c.temperature_constraints,
c.heatflux_constraints, c.initialtemperature_constraints,
c.beam_sections, c.shell_thicknesses, c.fluid_sections,
c.beam_sections, c.beam_rotations, c.shell_thicknesses, c.fluid_sections,
self.solver.AnalysisType, self.directory)
path = w.write_calculix_input_file()
# report to user if task succeeded
@@ -165,6 +165,7 @@ class _Container(object):
self.force_constraints = []
self.pressure_constraints = []
self.beam_sections = []
self.beam_rotations = []
self.fluid_sections = []
self.shell_thicknesses = []
self.displacement_constraints = []
@@ -239,6 +240,10 @@ class _Container(object):
beam_section_dict = {}
beam_section_dict['Object'] = m
self.beam_sections.append(beam_section_dict)
elif hasattr(m, "Proxy") and m.Proxy.Type == "Fem::FemElementRotation1D":
beam_rotation_dict = {}
beam_rotation_dict['Object'] = m
self.beam_rotations.append(beam_rotation_dict)
elif hasattr(m, "Proxy") and m.Proxy.Type == "Fem::FemElementFluid1D":
fluid_section_dict = {}
fluid_section_dict['Object'] = m

View File

@@ -45,7 +45,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
contact_obj, planerotation_obj, transform_obj,
selfweight_obj, force_obj, pressure_obj,
temperature_obj, heatflux_obj, initialtemperature_obj,
beamsection_obj, shellthickness_obj, fluidsection_obj,
beamsection_obj, beamrotation_obj, shellthickness_obj, fluidsection_obj,
analysis_type=None, dir_name=None
):
@@ -57,7 +57,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
contact_obj, planerotation_obj, transform_obj,
selfweight_obj, force_obj, pressure_obj,
temperature_obj, heatflux_obj, initialtemperature_obj,
beamsection_obj, shellthickness_obj, fluidsection_obj,
beamsection_obj, beamrotation_obj, shellthickness_obj, fluidsection_obj,
analysis_type, dir_name)
# self.dir_name does have a slash at the end
self.main_file_name = self.mesh_object.Name + '.inp'

View File

@@ -40,7 +40,7 @@ class FemInputWriter():
contact_obj, planerotation_obj, transform_obj,
selfweight_obj, force_obj, pressure_obj,
temperature_obj, heatflux_obj, initialtemperature_obj,
beamsection_obj, shellthickness_obj, fluidsection_obj,
beamsection_obj, beamrotation_obj, shellthickness_obj, fluidsection_obj,
analysis_type, dir_name
):
self.analysis = analysis_obj
@@ -60,6 +60,7 @@ class FemInputWriter():
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
self.analysis_type = analysis_type

View File

@@ -64,7 +64,7 @@ class Prepare(run.Prepare):
c.selfweight_constraints, c.force_constraints,
c.pressure_constraints, c.temperature_constraints,
c.heatflux_constraints, c.initialtemperature_constraints,
c.beam_sections, c.shell_thicknesses, c.fluid_sections,
c.beam_sections, c.beam_rotations, c.shell_thicknesses, c.fluid_sections,
self.solver.AnalysisType, self.directory)
path = w.write_z88_input()
# report to user if task succeeded
@@ -163,6 +163,7 @@ class _Container(object):
self.force_constraints = []
self.pressure_constraints = []
self.beam_sections = []
self.beam_rotations = []
self.fluid_sections = []
self.shell_thicknesses = []
self.displacement_constraints = []
@@ -237,6 +238,10 @@ class _Container(object):
beam_section_dict = {}
beam_section_dict['Object'] = m
self.beam_sections.append(beam_section_dict)
elif hasattr(m, "Proxy") and m.Proxy.Type == "Fem::FemElementRotation1D":
beam_rotation_dict = {}
beam_rotation_dict['Object'] = m
self.beam_rotations.append(beam_rotation_dict)
elif hasattr(m, "Proxy") and m.Proxy.Type == "Fem::FemElementFluid1D":
fluid_section_dict = {}
fluid_section_dict['Object'] = m

View File

@@ -42,7 +42,7 @@ class FemInputWriterZ88(FemInputWriter.FemInputWriter):
contact_obj, planerotation_obj, transform_obj,
selfweight_obj, force_obj, pressure_obj,
temperature_obj, heatflux_obj, initialtemperature_obj,
beamsection_obj, shellthickness_obj, fluidsection_obj,
beamsection_obj, beamrotation_obj, shellthickness_obj, fluidsection_obj,
analysis_type=None, dir_name=None
):
@@ -54,7 +54,7 @@ class FemInputWriterZ88(FemInputWriter.FemInputWriter):
contact_obj, planerotation_obj, transform_obj,
selfweight_obj, force_obj, pressure_obj,
temperature_obj, heatflux_obj, initialtemperature_obj,
beamsection_obj, shellthickness_obj, fluidsection_obj,
beamsection_obj, beamrotation_obj, shellthickness_obj, fluidsection_obj,
analysis_type, dir_name)
# self.dir_name does have a slash at the end
self.file_name = self.dir_name + 'z88'