FEM: examples, better var name for solver type

This commit is contained in:
Bernd Hahnebach
2019-10-08 21:02:13 +02:00
parent 128358baaf
commit 1ec2a9621b
6 changed files with 42 additions and 42 deletions

View File

@@ -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

View File

@@ -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(

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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