FEM: Implement constraint displacement in C++
This commit is contained in:
@@ -175,13 +175,17 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
|
||||
# Individual constraints are "Fem::ConstraintPressure" type
|
||||
self.pressure_constraints = []
|
||||
## @var beam_sections
|
||||
# set of beam sections from the analyis. Updated with update_objects
|
||||
# set of beam sections from the analysis. Updated with update_objects
|
||||
# Individual beam sections are Proxy.Type "FemBeamSection"
|
||||
self.beam_sections = []
|
||||
## @var shell_thicknesses
|
||||
# set of shell thicknesses from the analyis. Updated with update_objects
|
||||
# set of shell thicknesses from the analysis. Updated with update_objects
|
||||
# Individual shell thicknesses are Proxy.Type "FemShellThickness"
|
||||
self.shell_thicknesses = []
|
||||
## @var displacement_constraints
|
||||
# set of displacements for the analysis. Updated with update_objects
|
||||
# Individual displacement_constraints are Proxy.Type "FemConstraintDisplacement"
|
||||
self.displacement_constraints = []
|
||||
|
||||
for m in self.analysis.Member:
|
||||
if m.isDerivedFrom("Fem::FemSolverObjectPython"):
|
||||
@@ -210,6 +214,10 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
|
||||
PressureObjectDict = {}
|
||||
PressureObjectDict['Object'] = m
|
||||
self.pressure_constraints.append(PressureObjectDict)
|
||||
elif m.isDerivedFrom("Fem::ConstraintDisplacement"): #OvG: Replacement reference to C++ implementation of Displacement Constraint
|
||||
displacement_constraint_dict = {}
|
||||
displacement_constraint_dict['Object'] = m
|
||||
self.displacement_constraints.append(displacement_constraint_dict)
|
||||
elif hasattr(m, "Proxy") and m.Proxy.Type == "FemBeamSection":
|
||||
beam_section_dict = {}
|
||||
beam_section_dict['Object'] = m
|
||||
@@ -240,7 +248,7 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
|
||||
if has_no_references is True:
|
||||
message += "More than one Material has empty References list (Only one empty References list is allowed!).\n"
|
||||
has_no_references = True
|
||||
if not self.fixed_constraints:
|
||||
if not (self.fixed_constraints):
|
||||
message += "No fixed-constraint nodes defined in the Analysis\n"
|
||||
if self.analysis_type == "static":
|
||||
if not (self.force_constraints or self.pressure_constraints):
|
||||
@@ -269,6 +277,7 @@ class FemTools(QtCore.QRunnable, QtCore.QObject):
|
||||
inp_writer = iw.inp_writer(self.analysis, self.mesh, self.materials,
|
||||
self.fixed_constraints,
|
||||
self.force_constraints, self.pressure_constraints,
|
||||
self.displacement_constraints, #OvG: Stick to naming convention
|
||||
self.beam_sections, self.shell_thicknesses,
|
||||
self.analysis_type, self.eigenmode_parameters,
|
||||
self.working_dir)
|
||||
|
||||
Reference in New Issue
Block a user