FEM: elmer unit tests, add ccx cantilever prescribed displacement example

This commit is contained in:
Bernd Hahnebach
2020-07-07 07:58:23 +02:00
parent c251d8c99d
commit 614d5f4548
4 changed files with 101 additions and 0 deletions

View File

@@ -260,6 +260,7 @@ SET(FemTestsElmer_SRCS
femtest/data/elmer/box_static_mm.sif
femtest/data/elmer/ccxcantilever_faceload_mm.sif
femtest/data/elmer/ccxcantilever_nodeload_mm.sif
femtest/data/elmer/ccxcantilever_prescribeddisplacement_mm.sif
femtest/data/elmer/group_mesh.geo
femtest/data/elmer/ELMERSOLVER_STARTINFO
)

View File

@@ -165,6 +165,15 @@ class TestSolverElmer(unittest.TestCase):
setup(self.document, "elmer")
self.input_file_writing_test(get_namefromdef("test_"))
# ********************************************************************************************
def test_ccxcantilever_prescribeddisplacement(
self
):
fcc_print("")
from femexamples.ccx_cantilever_prescribeddisplacement import setup
setup(self.document, "elmer")
self.input_file_writing_test(get_namefromdef("test_"))
# ********************************************************************************************
def input_file_writing_test(
self,

View File

@@ -0,0 +1,85 @@
Check Keywords Warn
Header
Mesh DB "."
End
Solver 1
Bubbles = Logical False
Calculate Pangle = Logical False
Calculate Principal = Logical False
Calculate Strains = Logical False
Calculate Stresses = Logical False
Displace mesh = Logical False
Eigen Analysis = Logical False
Eigen System Values = Integer 5
Equation = String "Elasticity"
Exec Solver = String "Always"
Linear System Abort Not Converged = Logical False
Linear System Convergence Tolerance = Real 1e-08
Linear System Iterative Method = String "BiCGStab"
Linear System Max Iterations = Integer 500
Linear System Precondition Recompute = Integer 1
Linear System Preconditioning = String "ILU0"
Linear System Residual Output = Integer 1
Linear System Solver = String "Iterative"
Optimize Bandwidth = Logical True
Procedure = File "StressSolve" "StressSolver"
Stabilize = Logical True
Steady State Convergence Tolerance = Real 1e-05
Variable = String "Displacement"
Variable DOFs = Integer 3
End
Simulation
BDF Order = Integer 1
Coordinate Mapping(3) = Integer 1 2 3
Coordinate System = String "Cartesian 3D"
Output Intervals = Integer 1
Simulation Type = String "Steady state"
Steady State Max Iterations = Integer 1
Steady State Min Iterations = Integer 0
Timestepping Method = String "BDF"
Use Mesh Names = Logical True
End
Constants
End
Body 1
Equation = Integer 1
Material = Integer 1
Name = String "Solid1"
End
Material 1
Density = Real 7.9e-06
Heat expansion Coefficient = Real 1.2e-05
Poisson ratio = Real 0.3
Youngs Modulus = Real 210000000.0
End
Equation 1
Active Solvers(2) = Integer 1 2
End
Solver 2
Equation = String "ResultOutput"
Exec Solver = String "After simulation"
Output File Name = File "case"
Procedure = File "ResultOutputSolve" "ResultOutputSolver"
Vtu Format = Logical True
End
Boundary Condition 1
Displacement 1 = Real 0.0
Displacement 2 = Real 0.0
Displacement 3 = Real 0.0
Name = String "Face1"
End
Boundary Condition 2
Displacement 3 = Real -0.25
Name = String "Face2"
End

View File

@@ -91,6 +91,7 @@ make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalc
make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.test_box_static
make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_faceload
make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_nodeload
make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_prescribeddisplacement
# methods in FreeCAD
@@ -364,3 +365,8 @@ import unittest
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName(
'femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_nodeload'
))
import unittest
unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName(
'femtest.app.test_solver_elmer.TestSolverElmer.test_ccxcantilever_prescribeddisplacement'
))