FEM: examples, better var name for solver type
This commit is contained in:
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_base(doc=None, solver="ccxtools"):
|
||||
def setup_base(doc=None, solvertype="ccxtools"):
|
||||
# setup box base model
|
||||
|
||||
if doc is None:
|
||||
@@ -83,29 +83,29 @@ def setup_base(doc=None, solver="ccxtools"):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_static(doc=None, solver="ccxtools"):
|
||||
def setup_static(doc=None, solvertype="ccxtools"):
|
||||
# setup box static, add a fixed, force and a pressure constraint
|
||||
|
||||
doc = setup_base(doc, solver)
|
||||
doc = setup_base(doc, solvertype)
|
||||
box_obj = doc.Box
|
||||
analysis = doc.Analysis
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
elif solver == "elmer":
|
||||
elif solvertype == "elmer":
|
||||
analysis.addObject(ObjectsFem.makeSolverElmer(doc, "SolverElmer"))
|
||||
elif solver == "z88":
|
||||
elif solvertype == "z88":
|
||||
analysis.addObject(ObjectsFem.makeSolverZ88(doc, "SolverZ88"))
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "static"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = False
|
||||
@@ -139,24 +139,24 @@ def setup_static(doc=None, solver="ccxtools"):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_frequency(doc=None, solver="ccxtools"):
|
||||
def setup_frequency(doc=None, solvertype="ccxtools"):
|
||||
# setup box frequency, change solver attributes
|
||||
|
||||
doc = setup_base(doc, solver)
|
||||
doc = setup_base(doc, solvertype)
|
||||
analysis = doc.Analysis
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "frequency"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = False
|
||||
|
||||
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_cantileverbase(doc=None, solver="ccxtools"):
|
||||
def setup_cantileverbase(doc=None, solvertype="ccxtools"):
|
||||
# setup CalculiX cantilever base model
|
||||
|
||||
if doc is None:
|
||||
@@ -57,20 +57,20 @@ def setup_cantileverbase(doc=None, solver="ccxtools"):
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
elif solver == "elmer":
|
||||
elif solvertype == "elmer":
|
||||
analysis.addObject(ObjectsFem.makeSolverElmer(doc, "SolverElmer"))
|
||||
elif solver == "z88":
|
||||
elif solvertype == "z88":
|
||||
analysis.addObject(ObjectsFem.makeSolverZ88(doc, "SolverZ88"))
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "static"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = False
|
||||
@@ -113,10 +113,10 @@ def setup_cantileverbase(doc=None, solver="ccxtools"):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_cantileverfaceload(doc=None, solver="ccxtools"):
|
||||
def setup_cantileverfaceload(doc=None, solvertype="ccxtools"):
|
||||
# setup CalculiX cantilever, apply 9 MN on surface of front end face
|
||||
|
||||
doc = setup_cantileverbase(doc, solver)
|
||||
doc = setup_cantileverbase(doc, solvertype)
|
||||
|
||||
# force_constraint
|
||||
force_constraint = doc.Analysis.addObject(
|
||||
@@ -131,10 +131,10 @@ def setup_cantileverfaceload(doc=None, solver="ccxtools"):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_cantilevernodeload(doc=None, solver="ccxtools"):
|
||||
def setup_cantilevernodeload(doc=None, solvertype="ccxtools"):
|
||||
# setup CalculiX cantilever, apply 9 MN on the 4 nodes of the front end face
|
||||
|
||||
doc = setup_cantileverbase(doc, solver)
|
||||
doc = setup_cantileverbase(doc, solvertype)
|
||||
|
||||
# force_constraint
|
||||
force_constraint = doc.Analysis.addObject(
|
||||
@@ -155,11 +155,11 @@ def setup_cantilevernodeload(doc=None, solver="ccxtools"):
|
||||
return doc
|
||||
|
||||
|
||||
def setup_cantileverprescribeddisplacement(doc=None, solver="ccxtools"):
|
||||
def setup_cantileverprescribeddisplacement(doc=None, solvertype="ccxtools"):
|
||||
# setup CalculiX cantilever
|
||||
# apply a prescribed displacement of 250 mm in -z on the front end face
|
||||
|
||||
doc = setup_cantileverbase(doc, solver)
|
||||
doc = setup_cantileverbase(doc, solvertype)
|
||||
|
||||
# displacement_constraint
|
||||
displacement_constraint = doc.Analysis.addObject(
|
||||
|
||||
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup(doc=None, solver="ccxtools"):
|
||||
def setup(doc=None, solvertype="ccxtools"):
|
||||
# setup model
|
||||
|
||||
if doc is None:
|
||||
@@ -80,16 +80,16 @@ def setup(doc=None, solver="ccxtools"):
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "static"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = False
|
||||
|
||||
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup(doc=None, solver="ccxtools"):
|
||||
def setup(doc=None, solvertype="ccxtools"):
|
||||
# setup reinfoced wall in 2D
|
||||
|
||||
if doc is None:
|
||||
@@ -76,16 +76,16 @@ def setup(doc=None, solver="ccxtools"):
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver.WorkingDir = u""
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver.AnalysisType = "static"
|
||||
solver.GeometricalNonlinearity = "linear"
|
||||
solver.ThermoMechSteadyState = False
|
||||
|
||||
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup(doc=None, solver="ccxtools"):
|
||||
def setup(doc=None, solvertype="ccxtools"):
|
||||
# setup model
|
||||
|
||||
if doc is None:
|
||||
@@ -92,16 +92,16 @@ def setup(doc=None, solver="ccxtools"):
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools") # CalculiX
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "thermomech"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = True
|
||||
|
||||
@@ -35,7 +35,7 @@ def init_doc(doc=None):
|
||||
return doc
|
||||
|
||||
|
||||
def setup(doc=None, solver="ccxtools"):
|
||||
def setup(doc=None, solvertype="ccxtools"):
|
||||
# setup model
|
||||
|
||||
if doc is None:
|
||||
@@ -58,19 +58,19 @@ def setup(doc=None, solver="ccxtools"):
|
||||
|
||||
# solver
|
||||
# TODO How to pass multiple solver for one analysis in one doc
|
||||
if solver == "calculix":
|
||||
if solvertype == "calculix":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
|
||||
)[0]
|
||||
elif solver == "ccxtools":
|
||||
elif solvertype == "ccxtools":
|
||||
solver_object = analysis.addObject(
|
||||
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
|
||||
)[0]
|
||||
solver_object.WorkingDir = u""
|
||||
# should be possible with elmer too
|
||||
# elif solver == "elmer":
|
||||
# elif solvertype == "elmer":
|
||||
# analysis.addObject(ObjectsFem.makeSolverElmer(doc, "SolverElmer"))
|
||||
if solver == "calculix" or solver == "ccxtools":
|
||||
if solvertype == "calculix" or solvertype == "ccxtools":
|
||||
solver_object.AnalysisType = "thermomech"
|
||||
solver_object.GeometricalNonlinearity = "linear"
|
||||
solver_object.ThermoMechSteadyState = True
|
||||
|
||||
Reference in New Issue
Block a user