FEM: change ccx solver property name from SteadyState to TheromMechSteadyState
This commit is contained in:
parent
80c95aa555
commit
33b8593438
|
@ -299,7 +299,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
|
|||
f.write('** Materials\n')
|
||||
f.write('** written by {} function\n'.format(sys._getframe().f_code.co_name))
|
||||
f.write('** Young\'s modulus unit is MPa = N/mm2\n')
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.SteadyState):
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.ThermoMechSteadyState):
|
||||
f.write('** Density\'s unit is t/mm^3\n')
|
||||
if self.analysis_type == "thermomech":
|
||||
f.write('** Thermal conductivity unit is kW/mm/K = t*mm/K*s^3\n')
|
||||
|
@ -312,7 +312,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
|
|||
YM = FreeCAD.Units.Quantity(mat_obj.Material['YoungsModulus'])
|
||||
YM_in_MPa = float(YM.getValueAs('MPa'))
|
||||
PR = float(mat_obj.Material['PoissonRatio'])
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.SteadyState):
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.ThermoMechSteadyState):
|
||||
density = FreeCAD.Units.Quantity(mat_obj.Material['Density'])
|
||||
density_in_tonne_per_mm3 = float(density.getValueAs('t/mm^3'))
|
||||
if self.analysis_type == "thermomech":
|
||||
|
@ -327,7 +327,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
|
|||
f.write('*MATERIAL, NAME=' + mat_name + '\n')
|
||||
f.write('*ELASTIC \n')
|
||||
f.write('{0:.0f}, {1:.3f}\n'.format(YM_in_MPa, PR))
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.SteadyState):
|
||||
if self.analysis_type == "frequency" or self.selfweight_objects or (self.analysis_type == "thermomech" and not self.solver_obj.ThermoMechSteadyState):
|
||||
f.write('*DENSITY \n')
|
||||
f.write('{0:.3e}, \n'.format(density_in_tonne_per_mm3))
|
||||
if self.analysis_type == "thermomech":
|
||||
|
@ -441,7 +441,7 @@ class FemInputWriterCcx(FemInputWriter.FemInputWriter):
|
|||
thermomech_analysis += ', SOLVER=ITERATIVE SCALING'
|
||||
elif self.solver_obj.MatrixSolverType == "iterativecholesky":
|
||||
thermomech_analysis += ', SOLVER=ITERATIVE CHOLESKY'
|
||||
if self.solver_obj.SteadyState:
|
||||
if self.solver_obj.ThermoMechSteadyState:
|
||||
thermomech_analysis += ', STEADY STATE'
|
||||
self.solver_obj.TimeInitialStep = 1.0 # Set time to 1 and ignore user inputs for steady state
|
||||
self.solver_obj.TimeEnd = 1.0
|
||||
|
|
|
@ -82,7 +82,7 @@ class FemTest(unittest.TestCase):
|
|||
def create_new_solver(self):
|
||||
self.solver_object = FemSolverCalculix.makeFemSolverCalculix('CalculiX')
|
||||
self.solver_object.GeometricalNonlinearity = 'linear'
|
||||
self.solver_object.SteadyState = True
|
||||
self.solver_object.ThermoMechSteadyState = False
|
||||
self.solver_object.MatrixSolverType = 'default'
|
||||
self.solver_object.IterationsControlParameterTimeUse = False
|
||||
self.solver_object.EigenmodesCount = 10
|
||||
|
@ -337,7 +337,7 @@ class TherMechFemTest(unittest.TestCase):
|
|||
def create_new_solver(self):
|
||||
self.solver_object = FemSolverCalculix.makeFemSolverCalculix('CalculiX')
|
||||
self.solver_object.GeometricalNonlinearity = 'linear'
|
||||
self.solver_object.SteadyState = True
|
||||
self.solver_object.ThermoMechSteadyState = True
|
||||
self.solver_object.MatrixSolverType = 'default'
|
||||
self.solver_object.IterationsMaximum = 2000
|
||||
self.solver_object.IterationsControlParameterTimeUse = True
|
||||
|
|
|
@ -84,9 +84,9 @@ class _FemSolverCalculix():
|
|||
eni = ccx_prefs.GetFloat("AnalysisTime", 1.0)
|
||||
obj.TimeEnd = eni
|
||||
|
||||
obj.addProperty("App::PropertyBool", "SteadyState", "Fem", "Run steady state or transient analysis")
|
||||
obj.addProperty("App::PropertyBool", "ThermoMechSteadyState", "Fem", "Choose between steady state thermo mech or transient thermo mech analysis")
|
||||
sted = ccx_prefs.GetBool("StaticAnalysis", True)
|
||||
obj.SteadyState = sted
|
||||
obj.ThermoMechSteadyState = sted
|
||||
|
||||
obj.addProperty("App::PropertyBool", "IterationsControlParameterTimeUse", "Fem", "Use the user defined time incrementation control parameter")
|
||||
use_non_ccx_iterations_param = ccx_prefs.GetInt("UseNonCcxIterationParam", False)
|
||||
|
|
Loading…
Reference in New Issue
Block a user