テスト済み有限要素コード

CalculiX

CalculiXは弾性シミュレーションをサポートしています。以下に入力ファイルの説明を示します。

** Mesh ++++++++++++++++++++++++++++++++++++++++++++++++++++

*INCLUDE, INPUT=Mesh/fine-lin-hex.inp		# Path to mesh for ccx solver

** Mesh ++++++++++++++++++++++++++++++++++++++++++++++++++++

*MATERIAL, NAME=Steel				# Defining a material
*DENSITY
 7800						# Defining a density
*ELASTIC,
2.1e11, 0.3					# Defining Young modulus and Poisson's ratio

** Sections ++++++++++++++++++++++++++++++++++++++++++++++++

*SOLID SECTION, ELSET=ELIPSE, MATERIAL=Steel 	# Assigning material and plane stress elements
0.1,						# 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
AB,1,1,0
*BOUNDARY
CD,2,2,0

** Boundary conditions(adding pressure) ++++++++++++++++++++

*DLOAD
*INCLUDE, INPUT=Pressure/fine-lin-hex.dlo

** End step ++++++++++++++++++++++++++++++++++++++++++++++++

*END STEP					# End on analysis


この解析で使用するシミュレーション入力ファイルは GitHub にあります。

圧力境界条件の適用方法

次のコマンドを使用して、読み込みモードのCalculiX GraphiXでメッシュを開いてください:

cgx -c mesh_file.inp

次に、CGXウィンドウでマウスの右ボタンをクリックし、コマンドラインを切り替えを選択します。 コマンドラインで次のように入力してください:

comp NODESET do
send NODESET abq press value_of_press

同じディレクトリにNODESET.dloというファイルが表示されます。このファイルは、境界に圧力を適用するために*DLOADセクションに含める必要があります。圧力が正の値になると、要素面が圧縮されます。

Code_Aster

Code_Asterは弾性シミュレーションをサポートしています。以下に入力ファイルの説明を示します。

mesh = LIRE_MAILLAGE(identifier='0:1',				# Reading a mesh
                     FORMAT='IDEAS',
                     UNITE=80)

model = AFFE_MODELE(identifier='1:1',				# Assignig plane stress
                    AFFE=_F(MODELISATION=('C_PLAN', ),		# elements to mesh
                            PHENOMENE='MECANIQUE',
                            TOUT='OUI'),
                    MAILLAGE=mesh)

mater = DEFI_MATERIAU(identifier='2:1',				# Defining elastic material
                      ELAS=_F(E=210000000000.0,
                              NU=0.3))

materfl = AFFE_MATERIAU(identifier='3:1',			# Assigning material to model
                        AFFE=_F(MATER=(mater, ),
                                TOUT='OUI'),
                        MODELE=model)

mecabc = AFFE_CHAR_MECA(identifier='4:1',			# Applying boundary conditions
                        DDL_IMPO=(_F(DX=0.0,			# displacement = 0
                                     GROUP_MA=('AB', )),	# to the selected group of elements
                                  _F(DY=0.0,
                                     GROUP_MA=('CD', ))),
                        MODELE=model)

mecach = AFFE_CHAR_MECA(identifier='5:1',			# Applying pressure to the
                        MODELE=model,				# group of elements
                        PRES_REP=_F(GROUP_MA=('BC', ),
                                    PRES=-10000000.0))

result = MECA_STATIQUE(identifier='6:1',			# Defining the results of
                       CHAM_MATER=materfl,			# simulation
                       EXCIT=(_F(CHARGE=mecabc),
                              _F(CHARGE=mecach)),
                       MODELE=model)

SYY = CALC_CHAMP(identifier='7:1',				# Calculating stresses in
                 CHAM_MATER=materfl,				# computed domain
                 CONTRAINTE=('SIGM_NOEU', ),
                 MODELE=model,
                 RESULTAT=result)

IMPR_RESU(identifier='8:1',					# Saving the results
          FORMAT='MED',	  
          RESU=(_F(RESULTAT=result),
                _F(RESULTAT=SYY)),
          UNITE=80)

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) = 10
  Name = "Body Property 1"
  Equation = 1
  Material = 1
End

Solver 2					# Solver settings
  Equation = Linear elasticity
  Procedure = "StressSolve" "StressSolver"
  Calculate Stresses = True
  Variable = -dofs 2 Displacement
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1.0e-7
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Direct
  Linear System Direct Method = Umfpack
End

Solver 1					# Saving the results from node at point D
  Equation = SaveScalars
  Save Points = 26
  Procedure = "SaveData" "SaveScalars"
  Filename = file.dat
  Exec Solver = After Simulation
End

Equation 1					# Setting active solvers
  Name = "STRESS"
  Calculate Stresses = True
  Plane Stress = True				# Turning on plane stress simulation
  Active Solvers(1) = 2
End

Equation 2
  Name = "DATA"
  Active Solvers(1) = 1
End

Material 1					# Defining the material
  Name = "STEEL"
  Poisson ratio = 0.3
  Porosity Model = Always saturated
  Youngs modulus = 2.1e11
End

Boundary Condition 1				# Applying the boundary conditions
  Target Boundaries(1) = 12
  Name = "AB"
  Displacement 1 = 0
End

Boundary Condition 2
  Target Boundaries(1) = 13
  Name = "CD"
  Displacement 2 = 0
End

Boundary Condition 3
  Target Boundaries(1) = 14
  Name = "BC"
  Normal Force = 10e6
End

この解析で使用するシミュレーション入力ファイルは GitHub にあります。