Skip to content

Commit

Permalink
FEM: examples, elmer eigenvalues, add calculix solver for frequencies
Browse files Browse the repository at this point in the history
  • Loading branch information
berndhahnebach committed Mar 17, 2021
1 parent 9a105e3 commit cf241d0
Showing 1 changed file with 22 additions and 5 deletions.
Expand Up @@ -45,16 +45,15 @@ def init_doc(doc=None):


def get_information():
info = {
return {
"name": "NonGui Tutorial 01 - Eigenvalue of elastic beam",
"meshtype": "solid",
"meshelement": "Tet10",
"constraints": [],
"solvers": ["elmer"],
"solvers": ["calculix", "ccxtools", "elmer"],
"material": "solid",
"equation": "elasticity"
"equation": "elasticity" # "frequency", but list not allowed here
}
return info


def setup(doc=None, solvertype="elmer"):
Expand All @@ -78,7 +77,16 @@ def setup(doc=None, solvertype="elmer"):
analysis = ObjectsFem.makeAnalysis(doc, "Analysis")

# solver
if solvertype == "elmer":
if solvertype == "calculix":
solver_object = analysis.addObject(
ObjectsFem.makeSolverCalculix(doc, "SolverCalculiX")
)[0]
elif solvertype == "ccxtools":
solver_object = analysis.addObject(
ObjectsFem.makeSolverCalculixCcxTools(doc, "CalculiXccxTools")
)[0]
solver_object.WorkingDir = u""
elif solvertype == "elmer":
solver_object = analysis.addObject(
ObjectsFem.makeSolverElmer(doc, "SolverElmer")
)[0]
Expand All @@ -93,6 +101,15 @@ def setup(doc=None, solvertype="elmer"):
"Not known or not supported solver type: {}. "
"No solver object was created.\n".format(solvertype)
)
if solvertype == "calculix" or solvertype == "ccxtools":
solver_object.AnalysisType = "frequency"
solver_object.GeometricalNonlinearity = "linear"
solver_object.ThermoMechSteadyState = False
solver_object.MatrixSolverType = "default"
solver_object.IterationsControlParameterTimeUse = False
solver_object.EigenmodesCount = 5
solver_object.EigenmodeHighLimit = 1000000.0
solver_object.EigenmodeLowLimit = 0.01

# material
material_object = analysis.addObject(
Expand Down

0 comments on commit cf241d0

Please sign in to comment.