テスト済み有限要素コード¶
CalculiX¶
CalculiXは弾性シミュレーションをサポートしています。以下に入力ファイルの説明を示します。
** Mesh ++++++++++++++++++++++++++++++++++++++++++++++++++++
*INCLUDE, INPUT=Mesh/fine-lin-hex.inp # Path to mesh for ccx solver
** Mesh ++++++++++++++++++++++++++++++++++++++++++++++++++++
*MATERIAL, NAME=MAT # Defining a material
*ELASTIC,
68.25e9, 0.3 # Defining Young modulus and Poisson's ratio
** Sections ++++++++++++++++++++++++++++++++++++++++++++++++
*SHELL SECTION, ELSET=Shell, MATERIAL=MAT,OFFSET= # Assigning material and plane stress elements
0.04, # to the elements sets in mesh and adding thickness
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
*STEP # Begin of analysis
*STATIC, SOLVER=SPOOLES # Selection of elastic analysis
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
*EL FILE # Commands responsible for saving results
E, S
*NODE FILE
U
** Boundary conditions +++++++++++++++++++++++++++++++++++++
*BOUNDARY, # Applying translation = 0 on desired nodes
E,1,3,0
AE,2,2,0
AE,4,4,0
AE,6,6,0
CE,1,1,0
CE,5,6,0
** Boundary conditions(adding force on nodes) ++++++++++++++++++++
*CLOAD
A,1,2000
C,2,-2000
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
*END STEP # End on analysis
この解析で使用するシミュレーション入力ファイルは GitHub にあります。
Code_Aster¶
Code_Asterは弾性シミュレーションをサポートしています。以下に入力ファイルの説明を示します。
DEBUT(LANG='EN')
mesh = LIRE_MAILLAGE(identifier='0:1', # Reading the mesh
FORMAT='IDEAS',
UNITE=80)
Quad8 = CREA_MAILLAGE(LINE_QUAD=_F(PREF_NOEUD='NQ',
TOUT='OUI'),
MAILLAGE=mesh)
Quad9 = CREA_MAILLAGE(MAILLAGE=Quad8, # Transforming QUAD8 to QUAD9
MODI_MAILLE=_F(OPTION='QUAD8_9',
PREF_NOEUD='NS',
TOUT='OUI'))
model = AFFE_MODELE(AFFE=_F(MODELISATION=('COQUE_3D', ), # Assigning the elements
PHENOMENE='MECANIQUE',
TOUT='OUI'),
MAILLAGE=Quad9)
elemprop = AFFE_CARA_ELEM(COQUE=_F(EPAIS=0.04, # Assigning the thickness
GROUP_MA=('Shell', )),
MODELE=model)
mater = DEFI_MATERIAU(ELAS=_F(E=68250000000.0, # Defining the material
NU=0.3))
fieldmat = AFFE_MATERIAU(AFFE=_F(MATER=(mater, ), # Assigning material to model
TOUT='OUI'),
MAILLAGE=Quad9,
MODELE=model)
BC = AFFE_CHAR_MECA(DDL_IMPO=(_F(DX=0.0, # Applying the boundary condition
DY=0.0,
DZ=0.0,
GROUP_NO=('E', )),
_F(DRX=0.0,
DRZ=0.0,
DY=0.0,
GROUP_NO=('AE', )),
_F(DRY=0.0,
DRZ=0.0,
DX=0.0,
GROUP_NO=('CE', ))),
MODELE=model)
load0 = AFFE_CHAR_MECA(FORCE_NODALE=(_F(FX=2000.0, # Applying forces
GROUP_NO=('A', )),
_F(FY=-2000.0,
GROUP_NO=('C', ))),
MODELE=model)
reslin = MECA_STATIQUE(CARA_ELEM=elemprop, # Defining results of simulation
CHAM_MATER=fieldmat,
EXCIT=(_F(CHARGE=BC),
_F(CHARGE=load0)),
MODELE=model)
IMPR_RESU(FORMAT='RESULTAT', # Saving the results
RESU=_F(RESULTAT=reslin,
GROUP_NO=('A',)),
UNITE=8)
FIN()
この解析で使用するシミュレーション入力ファイルは GitHub にあります。
Elmer¶
Elmerは、弾性シミュレーションをサポートします。以下はソルバー入力ファイルの説明です。
Header
CHECK KEYWORDS Warn
Mesh DB "." "." # Path to the mesh
Include Path ""
Results Directory "" # Path to results directory
End
Simulation # Settings and constants for simulation
Max Output Level = 5
Coordinate System = Cartesian
Coordinate Mapping(3) = 1 2 3
Simulation Type = Steady state
Steady State Max Iterations = 1
Output Intervals = 1
Timestepping Method = BDF
BDF Order = 1
Solver Input File = case.sif
Post File = case.vtu
End
Constants
Gravity(4) = 0 -1 0 9.82
Stefan Boltzmann = 5.67e-08
Permittivity of Vacuum = 8.8542e-12
Boltzmann Constant = 1.3807e-23
Unit Charge = 1.602e-19
End
Body 1 # Assigning the material and equations to the mesh
Target Bodies(1) = 6
Name = "Body 1"
Equation = 1
Material = 1
End
Solver 1 # Solver calculating normal vectors
Equation = "Director field"
Procedure = "SphereNormalSolver" "NormalSolver"
Exec Solver = "Before Simulation"
Normals Result Variable = String "Director"
Exported Variable 1 = Director[Director:3]
Linear System Solver = "Iterative"
Linear System Iterative Method = "IDRS"
Linear System Preconditioning = None
Linear System Residual Output = 10
Linear System Max Iterations = 500
Linear System Convergence Tolerance = 1.0e-10
End
Solver 2 # Solver shell settings
Equation = "Shell equations"
Procedure = "ShellSolver" "ShellSolver"
Large Deflection = False
Linear System Solver = Direct
Linear System Preconditioning = ILU0
Linear System Row Equilibration = Logical True
Linear System Max Iterations = 1000
Linear System Convergence Tolerance = 1e-8
Linear System Direct Method = Umfpack
Linear System GCR Restart = 300
Linear System Abort Not Converged = False
Steady State Convergence Tolerance = 1e-09
End
Equation 1 # Setting active solvers
Name = "Equation 1"
Active Solvers(2) = 1 2
End
Material 1 # Defining the material
Name = "Material 1"
Poisson ratio = .3
Youngs modulus = 68.25E9
Shell Thickness = 0.04
End
Boundary Condition 1 # Applying the boundary conditions
Target Boundaries(1) = 4
Name = "XZ"
U 2 = 0
DNU 2 = 0
End
Boundary Condition 2
Target Boundaries(1) = 5
Name = "Yz"
U 1 = 0
DNU 1 = 0
End
Boundary Condition 3
Target Nodes(1) = 5
U 3 = 0
U 2 = 0
U 1 = 0
End
Boundary Condition 4
Target Nodes(1) = 1
Name = "Load X"
U 1 Load = Real 2000.0
End
Boundary Condition 5
Target Nodes(1) = 7
Name = "Load y"
U 2 Load = Real -2000.0
End
この解析で使用するシミュレーション入力ファイルは GitHub にあります。