Skip to content

Commit

Permalink
FEM: examples, better var name for solver type
Browse files Browse the repository at this point in the history
  • Loading branch information
berndhahnebach committed Oct 8, 2019
1 parent 128358b commit 1ec2a96
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 42 deletions.
26 changes: 13 additions & 13 deletions src/Mod/Fem/femexamples/boxanalysis.py
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
24 changes: 12 additions & 12 deletions src/Mod/Fem/femexamples/ccx_cantilever_std.py
Expand Up @@ -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:
Expand All @@ -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
Expand Down Expand Up @@ -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(
Expand All @@ -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(
Expand All @@ -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(
Expand Down
8 changes: 4 additions & 4 deletions src/Mod/Fem/femexamples/material_multiple_twoboxes.py
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions src/Mod/Fem/femexamples/rc_wall_2d.py
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions src/Mod/Fem/femexamples/thermomech_flow1d.py
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions src/Mod/Fem/femexamples/thermomech_spine.py
Expand Up @@ -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:
Expand All @@ -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
Expand Down

0 comments on commit 1ec2a96

Please sign in to comment.