FEM SolverCalculixCxxtools: Difference between revisions

From FreeCAD Documentation
mNo edit summary
(Marked this version for translation)
 
(49 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:35-->
<!--T:35-->
{{Docnav
{{Docnav|[[FEM_FemMesh2Mesh|FEM mesh to mesh]]|[[FEM_SolverCalculiX|Solver CalculiX]]|[[FEM_Module|FEM]]|IconL=FEM_FemMesh2Mesh.png|IconC=Workbench_FEM.svg|IconR=Fem-solver.svg}}
|[[FEM_FemMesh2Mesh|FEM mesh to mesh]]
|[[FEM_SolverElmer|Solver Elmer]]
|[[FEM_Workbench|FEM]]
|IconL=FEM_FemMesh2Mesh.svg
|IconR=FEM_SolverElmer.svg
|IconC=Workbench_FEM.svg
}}


<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand|Name=FEM Solver|MenuLocation=Solve → Solver CalculiX Standard||Workbenches=[[FEM Module|FEM]]|Shortcut=|SeeAlso=[[FEM_tutorial|FEM tutorial]]}}
|Name=FEM SolverCalculixCxxtools
|MenuLocation=Solve → Solver CalculiX Standard
|Workbenches=[[FEM_Workbench|FEM]]
|Shortcut={{KEY|S}} {{KEY|X}}
|SeeAlso=[[FEM_tutorial|FEM tutorial]]
}}


==Description== <!--T:4-->
==Description== <!--T:4-->


<!--T:11-->
<!--T:11-->
CalculiXccxTools enables usage of the [http://dhondt.de/ CalculiX] solver. It may be used for:
[[FEM_SolverCalculixCxxtools|CalculiXccxTools]] enables usage of the [https://en.wikipedia.org/wiki/Calculix CalculiX] solver. It may be used for:
# setting analysis parameters
# Setting analysis parameters
# selecting working directory
# Selecting working directory
# running the CalculiX solver
# Running the CalculiX solver


==How to use== <!--T:5-->
==Usage== <!--T:5-->


<!--T:12-->
<!--T:12-->
# {{KEY|[[Image:FEM_Solver.png|24px]] CalculiXccxTools}} object is created automatically with creation of {{KEY|[[Image:FEM_Analysis.png|24px]] [[FEM_Analysis|Analysis container]]}}. Otherwise use {{KEY|Solve}} → {{KEY|Solver CalculiX Standard}} , or press {{KEY|S}} then {{KEY|X}} keys
# A [[Image:FEM_SolverCalculixCxxtools.svg|16px]] CalculiXcxxTools solver object is created automatically with the creation of an [[Image:FEM_Analysis.svg|16px|link=FEM_Analysis]] [[FEM_Analysis|Analysis container]].<br>To create it manually, use one of the following alternatives:
#* Press the {{Button|[[Image:FEM_SolverCalculixCxxtools.svg|16px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]}} button.
# Optionally set data properties of the {{KEY|[[Image:FEM_Solver.png|24px]] CalculiXccxTools}} object
#* Select {{MenuCommand|Solve → [[Image:FEM_SolverCalculixCxxtools.svg|16px]] Solver CalculiX Standard}} from the menu.
# Double click on the {{KEY|[[Image:FEM_Solver.png|24px]] CalculiXccxTools}} object
#* Press the {{KEY|S}} then {{KEY|X}} shortcut keys.
# Select type of the analysis
# Optionally change the properties of the [[Image:FEM_SolverCalculixCxxtools.svg|16px]] CalculiXcxxTools solver object in the [[Property_editor|Property editor]].
# Click {{KEY|Write .inp file}}
# Double click the [[Image:FEM_SolverCalculixCxxtools.svg|16px]] CalculiXcxxTools solver object.
# Click {{KEY|Run CalculiX}}
# Select the {{MenuCommand|Analysis type}}.
# Click the {{Button|Write .inp file}} button.
# Click the {{Button|Run CalculiX}} button.


==Options== <!--T:6-->
==Options== <!--T:6-->


<!--T:13-->
<!--T:13-->
By using {{KEY|Edit .inp file}} you can display and edit CalculiX input file manually before running analysis. In this case it might be useful to use parameter "Split Input Writer = true".
Click the {{Button|Edit .inp file}} button to display and edit the CalculiX input file manually before running the analysis. In that case it can be useful to set the {{PropertyData|Split Input Writer}} property to {{True}}.


==Properties== <!--T:7-->
==Properties== <!--T:7-->


<!--T:14-->
<!--T:14-->
Default values can be set in the menu {{KEY|Edit}}{{KEY|Preferences}}{{KEY|FEM}}{{KEY|CalculiX}}
Default values can be set in the menu {{MenuCommand|Edit → Preferences → FEM → CalculiX}}


<!--T:15-->
<!--T:15-->
* {{PropertyData|Analysis Type}}:
* {{PropertyData|Analysis Type}}:
** static
** static - static stress analysis
** frequency
** frequency - modal (natural frequency) analysis
** thermomech - for mechanical and thermal loads
** thermomech - thermo-mechanical analysis
** check - no calculation, performs input deck checks
** buckling - linear buckling analysis {{Version|0.20}}

<!--T:41-->
* {{PropertyData|Beam Reduced Integration}} - {{Version|0.22}}:
** true - uses beam elements with reduced integration (B31R or B32R), required when pipe beam section is used, can also make it possible to obtain [https://forum.freecad.org/viewtopic.php?t=61233 accurate results with plasticity]
** false - uses regular (fully-integrated) beam elements


<!--T:16-->
<!--T:16-->
* {{PropertyData|Beam Shell Result Output 3D}}: note that CalculiX internally expands 1D and 2D elements into 3D elements to accomplish FE analysis
* {{PropertyData|Beam Shell Result Output 3D}}: note that CalculiX internally expands 1D and 2D elements into 3D elements to accomplish FE analysis
** false - results of 1D and 2D elements will be averaged to the nodes of original 1D or 2D mesh (i.e. purely bended beam will show 0 nodal stresses due to averaging)
** true - resulting mesh will contain 1D and 2D elements expanded to 3D elements
** true - resulting mesh will contain 1D and 2D elements expanded to 3D elements
** false - results of 1D and 2D elements will be averaged to the nodes of original 1D or 2D mesh (i.e. purely bended beam will show 0 nodal stresses due to averaging)


<!--T:17-->
<!--T:17-->
* {{PropertyData|Eigenmode High Limit}}: Eigenvalues above this limit will not be calculated
* {{PropertyData|Eigenmode High Limit}}: Eigenvalues above this limit will not be calculated; '''Note''': if eigenvalues of the model are above the high limit, CalculiX will finish without output


<!--T:18-->
<!--T:18-->
Line 57: Line 81:
<!--T:20-->
<!--T:20-->
* {{PropertyData|Geometric Nonlinearity}}:
* {{PropertyData|Geometric Nonlinearity}}:
** linear - linear analysis will be performed if model does not contain nonlinear material
** linear - linear analysis will be performed if the model does not contain nonlinear material
** nonlinear - nonlinear analysis will be performed
** nonlinear - nonlinear analysis will be performed


<!--T:21-->
<!--T:21-->
* {{PropertyData|Iterations Control parameter Cutb}}: defines second line of advanced iteration parameters under *CONTROLS card, used when "Iterations Control Parameter Time Use" is true
* {{PropertyData|Iterations Control parameter Cutb}}: defines the second line of [http://www.dhondt.de/ccx_2.17.pdf#subsection.8.24 CalculiX' advanced iteration parameters]. Used if {{PropertyData|Iterations Control Parameter Time Use}} is set to ''true''.


<!--T:22-->
<!--T:22-->
* {{PropertyData|Iterations Control Parameter Iter}}: defines first line of advanced iteration parameters under *CONTROLS card, used when "Iterations Control Parameter Time Use" is true
* {{PropertyData|Iterations Control Parameter Iter}}: defines the first line of [http://www.dhondt.de/ccx_2.17.pdf#subsection.8.24 CalculiX' advanced iteration parameters]. Used if {{PropertyData|Iterations Control Parameter Time Use}} is set to ''true''.


<!--T:23-->
<!--T:23-->
* {{PropertyData|Iterations Control Parameter Time Use}}
* {{PropertyData|Iterations Control Parameter Time Use}}
** true - activates "Iterations Control Parameter Cutb" and "Iterations Control Parameter Iter"
** true - activates {{PropertyData|Iterations Control parameter Cutb}} and {{PropertyData|Iterations Control Parameter Iter}}
** false


<!--T:24-->
<!--T:24-->
* {{PropertyData|Iterations Thermo Mech Maximum}}: maximum number of increments in thermomechanical analysis after which the job will be stopped.
* {{PropertyData|Iterations Maximum}}: maximum number of increments after which the job will be stopped.


<!--T:25-->
<!--T:25-->
Line 80: Line 105:
<!--T:26-->
<!--T:26-->
* {{PropertyData|Iterations User Defined Time Step Length}}:
* {{PropertyData|Iterations User Defined Time Step Length}}:
** true - activates "Time End" and "Time Initial Step" parameters
** true - activates {{PropertyData|Time End}} and {{PropertyData|Time Initial Step}} parameters
** false


<!--T:27-->
<!--T:27-->
* {{PropertyData|Material Nonlinearity}}:
* {{PropertyData|Material Nonlinearity}}:
** linear - only linear material properties will be included in the analysis
** linear - only linear material properties will be included in the analysis
** nonlinear - nonlinear material properties will be used from {{KEY|[[Image:FEM_MaterialMechanicalNonlinear.png|24px]] '''[[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]'''}} object
** nonlinear - nonlinear material properties will be used from {{KEY|[[Image:FEM_MaterialMechanicalNonlinear.svg|24px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]}} object


<!--T:28-->
<!--T:28-->
* {{PropertyData|Matrix Solver Type}}: type of the solver to solve equation system inside FE analysis. It may significantly affect calculation speed and memory demands. Suitability depends on your FE model and available hardware
* {{PropertyData|Matrix Solver Type}}: type of the solver to solve equation system inside FE analysis. It may significantly affect calculation speed and memory demands. Suitability depends on your FE model and available hardware
** default - automatically selects matrix solver depending on available solvers (probably it will be Spooles)
** default - automatically selects matrix solver depending on the available solvers (typically it is Spooles)
** {{Version|0.22}}: pastix - one of the fastest solvers (along with Pardiso), available (and default) in official builds since ccx 2.18, may still cause occasional issues
** spooles - direct solver with support of multiple CPUs. Number of CPUs need to be set in {{KEY|Edit}} → {{KEY|Preferences}} {{KEY|FEM}} → {{KEY|CalculiX}} → Solver defaults → Number of CPU's to use)
** {{Version|0.22}}: pardiso - one of the fastest solvers (along with PaStiX) but not open-source, requires a different build of CalculiX (ccx_dynamic) and additional libraries not provided with FreeCAD, more reliable than PaStiX
** iterativescaling - iterative solver with least memory demands, suitable if model contains mostly 3D elements
** spooles - direct solver with the support of multiple CPUs. The number of CPUs needs to be set in the [[FEM_Preferences#CalculiX|preferences]] at ''Solver defaults → Number of CPU's to use''.
** iterativecholesky - iterative solver with preconditioning with and with low memory demands, suitable if model contains mostly 3D elements
** iterativescaling - iterative solver with the lowest memory demands, suitable if the model contains mostly 3D elements
** iterativecholesky - iterative solver with preconditioning with and with low memory demands, suitable if the model contains mostly 3D elements

<!--T:42-->
* {{PropertyData|Model Space}} - {{Version|0.22}}: switches between 3D and 2D analyses, the latter require surface geometry on the XY plane (on the right of the Y axis in the axisymmetric case) with [[FEM_ElementGeometry2D|thickness definition]] (value ignored in the axisymmetric case) and proper boundary conditions ([[FEM_ConstraintDisplacement|displacement boundary condition]] with degrees of freedom X and Y has to be used instead of [[FEM_ConstraintFixed|fixed boundary condition]]) and in-plane loads applied to edges
** 3D - three-dimensional solid/shell/beam elements are used
** plane stress - plane stress 2D solid elements are used
** plane strain - plane strain 2D solid elements are used
** axisymmetric - axisymmetric 2D solid elements are used

<!--T:43-->
* {{PropertyData|Output Frequency}} - {{Version|0.22}}: defines the frequency of results writing in increments (the default setting of 1 means that the results are written every increment, setting 2 would save the results every 2 increments and so on), particularly useful for nonlinear and transient simulations, helps reduce the clutter in the tree since currently a pair of results objects (CCX_Results and Pipeline_CCX_Results) is created for each results frame


<!--T:29-->
<!--T:29-->
Line 101: Line 139:
<!--T:30-->
<!--T:30-->
* {{PropertyData|Thermo Mechanical Steady State}}:
* {{PropertyData|Thermo Mechanical Steady State}}:
** true - steady state thermo mechanical analysis
** true - steady state thermo-mechanical analysis
** false - transient thermo mechanical analysis
** false - transient thermo-mechanical analysis


<!--T:31-->
<!--T:31-->
* {{PropertyData|Time End}}: time period of the step, used when parameter "Iterations User Defined Incrementations" or "Iterations User Defined Time Step Length" is true
* {{PropertyData|Time End}}: time period of the step, used when parameter {{PropertyData|Iterations User Defined Incrementations}} or {{PropertyData|Iterations User Defined Time Step Length}} is ''true''


<!--T:32-->
<!--T:32-->
* {{PropertyData|Time Initial Step}}: initial time increment of the step, used when parameter "Iterations User Defined Incrementations" or "Iterations User Defined Time Step Length" is true
* {{PropertyData|Time Initial Step}}: initial time increment of the step, used when parameter {{PropertyData|Iterations User Defined Incrementations}} or {{PropertyData|Iterations User Defined Time Step Length}} is ''true''

<!--T:44-->
* {{PropertyData|Time Maximum Step}} - {{Version|0.22}}: maximum time increment of the step, used when parameter {{PropertyData|Iterations User Defined Incrementations}} or {{PropertyData|Iterations User Defined Time Step Length}} is ''true''

<!--T:45-->
* {{PropertyData|Time Minimum Step}} - {{Version|0.22}}: minimum time increment of the step, used when parameter {{PropertyData|Iterations User Defined Incrementations}} or {{PropertyData|Iterations User Defined Time Step Length}} is ''true''


<!--T:33-->
<!--T:33-->
Line 114: Line 158:


==Limitations== <!--T:8-->
==Limitations== <!--T:8-->

<!--T:39-->
When running a CalculiX, you might end up with '''error 4294977295'''. This means you don't have enough RAM space. You have then 2 options:
# reduce the number of mesh nodes, preferably by omitting geometry that is not absolutely necessary for your analysis
# buy more RAM for your PC


==Notes== <!--T:9-->
==Notes== <!--T:9-->
Line 124: Line 173:


<!--T:36-->
<!--T:36-->
{{Docnav
{{Docnav|[[FEM_FemMesh2Mesh|FEM mesh to mesh]]|[[FEM_SolverCalculiX|Solver CalculiX]]|[[FEM_Module|FEM]]|IconL=FEM_FemMesh2Mesh.png|IconC=Workbench_FEM.svg|IconR=Fem-solver.svg}}
|[[FEM_FemMesh2Mesh|FEM mesh to mesh]]

|[[FEM_SolverElmer|Solver Elmer]]
<!--T:37-->
|[[FEM_Workbench|FEM]]
{{FEM Tools navi}}
|IconL=FEM_FemMesh2Mesh.svg
|IconR=FEM_SolverElmer.svg
|IconC=Workbench_FEM.svg
}}


<!--T:38-->
{{Userdocnavi}}
</translate>
</translate>
{{FEM Tools navi{{#translation:}}}}
{{clear}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 09:38, 27 March 2024

FEM SolverCalculixCxxtools

Menu location
Solve → Solver CalculiX Standard
Workbenches
FEM
Default shortcut
S X
Introduced in version
-
See also
FEM tutorial

Description

CalculiXccxTools enables usage of the CalculiX solver. It may be used for:

  1. Setting analysis parameters
  2. Selecting working directory
  3. Running the CalculiX solver

Usage

  1. A CalculiXcxxTools solver object is created automatically with the creation of an Analysis container.
    To create it manually, use one of the following alternatives:
    • Press the Solver CalculiX Standard button.
    • Select Solve → Solver CalculiX Standard from the menu.
    • Press the S then X shortcut keys.
  2. Optionally change the properties of the CalculiXcxxTools solver object in the Property editor.
  3. Double click the CalculiXcxxTools solver object.
  4. Select the Analysis type.
  5. Click the Write .inp file button.
  6. Click the Run CalculiX button.

Options

Click the Edit .inp file button to display and edit the CalculiX input file manually before running the analysis. In that case it can be useful to set the DataSplit Input Writer property to true.

Properties

Default values can be set in the menu Edit → Preferences → FEM → CalculiX

  • DataAnalysis Type:
    • static - static stress analysis
    • frequency - modal (natural frequency) analysis
    • thermomech - thermo-mechanical analysis
    • check - no calculation, performs input deck checks
    • buckling - linear buckling analysis introduced in version 0.20
  • DataBeam Shell Result Output 3D: note that CalculiX internally expands 1D and 2D elements into 3D elements to accomplish FE analysis
    • true - resulting mesh will contain 1D and 2D elements expanded to 3D elements
    • false - results of 1D and 2D elements will be averaged to the nodes of original 1D or 2D mesh (i.e. purely bended beam will show 0 nodal stresses due to averaging)
  • DataEigenmode High Limit: Eigenvalues above this limit will not be calculated; Note: if eigenvalues of the model are above the high limit, CalculiX will finish without output
  • DataEigenmode Low Limit: Eigenvalues below this limit will not be calculated
  • DataEigenmodes Count: number of lowest eigenmodes to be calculated
  • DataGeometric Nonlinearity:
    • linear - linear analysis will be performed if the model does not contain nonlinear material
    • nonlinear - nonlinear analysis will be performed
  • DataIterations Control Parameter Time Use
    • true - activates DataIterations Control parameter Cutb and DataIterations Control Parameter Iter
    • false
  • DataIterations Maximum: maximum number of increments after which the job will be stopped.
  • DataIterations User Defined Incrementations:
    • true - automatic incrementation control will be switched off by DIRECT parameter
    • false - incrementation control will be automatic
  • DataIterations User Defined Time Step Length:
    • true - activates DataTime End and DataTime Initial Step parameters
    • false
  • DataMaterial Nonlinearity:
    • linear - only linear material properties will be included in the analysis
    • nonlinear - nonlinear material properties will be used from Nonlinear mechanical material object
  • DataMatrix Solver Type: type of the solver to solve equation system inside FE analysis. It may significantly affect calculation speed and memory demands. Suitability depends on your FE model and available hardware
    • default - automatically selects matrix solver depending on the available solvers (typically it is Spooles)
    • introduced in version 0.22: pastix - one of the fastest solvers (along with Pardiso), available (and default) in official builds since ccx 2.18, may still cause occasional issues
    • introduced in version 0.22: pardiso - one of the fastest solvers (along with PaStiX) but not open-source, requires a different build of CalculiX (ccx_dynamic) and additional libraries not provided with FreeCAD, more reliable than PaStiX
    • spooles - direct solver with the support of multiple CPUs. The number of CPUs needs to be set in the preferences at Solver defaults → Number of CPU's to use.
    • iterativescaling - iterative solver with the lowest memory demands, suitable if the model contains mostly 3D elements
    • iterativecholesky - iterative solver with preconditioning with and with low memory demands, suitable if the model contains mostly 3D elements
  • DataModel Space - introduced in version 0.22: switches between 3D and 2D analyses, the latter require surface geometry on the XY plane (on the right of the Y axis in the axisymmetric case) with thickness definition (value ignored in the axisymmetric case) and proper boundary conditions (displacement boundary condition with degrees of freedom X and Y has to be used instead of fixed boundary condition) and in-plane loads applied to edges
    • 3D - three-dimensional solid/shell/beam elements are used
    • plane stress - plane stress 2D solid elements are used
    • plane strain - plane strain 2D solid elements are used
    • axisymmetric - axisymmetric 2D solid elements are used
  • DataOutput Frequency - introduced in version 0.22: defines the frequency of results writing in increments (the default setting of 1 means that the results are written every increment, setting 2 would save the results every 2 increments and so on), particularly useful for nonlinear and transient simulations, helps reduce the clutter in the tree since currently a pair of results objects (CCX_Results and Pipeline_CCX_Results) is created for each results frame
  • DataSplit Input Writer:
    • false - write whole input into one *.inp file to be used by CalculiX solver
    • true - split solver inputs into more *.inp files, that can clarify hand editing
  • DataThermo Mechanical Steady State:
    • true - steady state thermo-mechanical analysis
    • false - transient thermo-mechanical analysis
  • DataTime End: time period of the step, used when parameter DataIterations User Defined Incrementations or DataIterations User Defined Time Step Length is true
  • DataTime Initial Step: initial time increment of the step, used when parameter DataIterations User Defined Incrementations or DataIterations User Defined Time Step Length is true
  • DataTime Maximum Step - introduced in version 0.22: maximum time increment of the step, used when parameter DataIterations User Defined Incrementations or DataIterations User Defined Time Step Length is true
  • DataTime Minimum Step - introduced in version 0.22: minimum time increment of the step, used when parameter DataIterations User Defined Incrementations or DataIterations User Defined Time Step Length is true
  • DataWorking Dir: path to the working directory which will be used for CalculiX analysis files.

Limitations

When running a CalculiX, you might end up with error 4294977295. This means you don't have enough RAM space. You have then 2 options:

  1. reduce the number of mesh nodes, preferably by omitting geometry that is not absolutely necessary for your analysis
  2. buy more RAM for your PC

Notes

Original CalculiX documentation can be found at http://dhondt.de/ in the "ccx" paragraph.

Scripting