https://wiki.freecad.org/api.php?action=feedcontributions&user=Uwestoehr&feedformat=atomFreeCAD Documentation - User contributions [en]2024-03-29T10:29:16ZUser contributionsMediaWiki 1.40.1https://wiki.freecad.org/index.php?title=FEM_ConstraintDisplacement&diff=1247358FEM ConstraintDisplacement2023-04-03T11:44:55Z<p>Uwestoehr: clarification</p>
<hr />
<div><languages/><br />
<translate><br />
<!--T:9--><br />
{{Docnav<br />
|[[FEM_ConstraintFixed|Constraint fixed]]<br />
|[[FEM_ConstraintContact|Constraint contact]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintFixed.svg<br />
|IconR=FEM_ConstraintContact.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ConstraintDisplacement<br />
|MenuLocation=Model → Mechanical Constraints → Constraint displacement<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut=<br />
|SeeAlso=[[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:2--><br />
<br />
<!--T:6--><br />
Creates a FEM constraint for a prescribed displacement of a selected object for a specified degree of freedom.<br />
<br />
==Usage== <!--T:3--><br />
<br />
<!--T:7--><br />
# Either press the button {{Button|[[Image:FEM_ConstraintDisplacement.svg|16px]] '''FEM FEM_ConstraintDisplacement'''}} or select the menu {{MenuCommand|Model → Mechanical Constraints → [[Image:FEM_ConstraintDisplacement.svg|16px]] Constraint displacement}}.<br />
# In the [[3D_view|3D view]] select the object the constraint should be applied to, which can be a vertex (corner), edge, or face.<br />
# Press the {{Button|Add}} button.<br />
# Uncheck ''Unspecified'' to activate the necessary fields for edition.<br />
# Set the values or ({{Version|1.0}}) specify a formula for the displacements.<br />
<br />
==Formulas== <!--T:13--><br />
<br />
<!--T:14--><br />
{{Version|1.0}}<br />
<br />
===General=== <!--T:15--><br />
<br />
<!--T:16--><br />
For the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|solver Elmer]] it is possible to define the displacement as a formula. In this case the solver sets the displacement according to the give formula variable.<br />
<br />
<!--T:17--><br />
Take for example the case that we want to perform a [[FEM_SolverElmer_SolverSettings#Timestepping|transient analysis]]. For every time step the displacement <math>d</math> should be increased by 6 mm:<br />
<br />
<!--T:18--><br />
<math>\quad<br />
d(t)=0.006\cdot t<br />
</math><br />
<br />
<!--T:19--><br />
enter this in the ''Formula'' field:</br><br />
{{incode| Variable "time"; Real MATC "0.006*tx"}}<br />
<br />
<!--T:20--><br />
This code has the following syntax:<br />
* the prefix ''Variable'' specifies that the displacement is not a constant but a variable<br />
* the variable is the current time<br />
* the displacement values are returned as ''Real'' (floating point) values<br />
* ''MATC'' is a prefix for the Elmer solver indicating that the following code is a formula<br />
* ''tx'' is always the name of the variable in ''MATC'' formulas, no matter that ''tx'' in our case is actually ''t''<br />
<br />
===Rotations=== <!--T:21--><br />
<br />
<!--T:22--><br />
Elmer only uses the '''Displacement *''' fields of the constraint. To define rotations, we need a formula.<br />
<br />
<!--T:23--><br />
If for example a face should be rotated according to this condition:<br />
<br />
<!--T:24--><br />
<math>\quad<br />
\begin{align}<br />
d_{x}(t)= & \left(\cos(\phi)-1\right)x-\sin(\phi)y\\<br />
d_{y}(t)= & \left(\cos(\phi)-1\right)y+\sin(\phi)x<br />
\end{align}<br />
</math><br />
<br />
<!--T:25--><br />
then we need to enter for '''Displacement x'''</br><br />
{{incode| Variable "time, Coordinate"<br />
Real MATC "(cos(tx(0)*pi)-1.0)*tx(1)-sin(tx(0)*pi)*tx(2)}}<br />
<br />
<!--T:26--><br />
and for '''Displacement y'''</br><br />
{{incode| Variable "time, Coordinate"<br />
Real MATC "(cos(tx(0)*pi)-1.0)*tx(2)+sin(tx(0)*pi)*tx(1)}}<br />
<br />
<!--T:27--><br />
This code has the following syntax:<br />
* we have 4 variables, the time and all possible coordinates (x, y z)<br />
* ''tx'' is a vector, ''tx(0)'' refers to the first variable, the time, while ''tx(1)'' refers to the first coordinate ''x''<br />
* ''pi'' denotes <math>\pi</math> and was added so that after <math>t=1\rm\, s</math> a rotation of 180° is performed<br />
<br />
==Notes== <!--T:5--><br />
<br />
<!--T:8--><br />
For the [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|solver CalculiX]]:<br />
* The constraint uses the *BOUNDARY card.<br />
* Fixing a degree of freedom is explained at http://web.mit.edu/calculix_v2.7/CalculiX/ccx_2.7/doc/ccx/node164.html<br />
* Prescribing a displacement for a degree of freedom is explained at http://web.mit.edu/calculix_v2.7/CalculiX/ccx_2.7/doc/ccx/node165.html<br />
<br />
<br />
<!--T:10--><br />
{{Docnav<br />
|[[FEM_ConstraintFixed|Constraint fixed]]<br />
|[[FEM_ConstraintContact|Constraint contact]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintFixed.svg<br />
|IconR=FEM_ConstraintContact.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1246147FEM EquationElasticity2023-03-27T22:45:46Z<p>Uwestoehr: clarification</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Mechanical equations → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
'''Note''': For analyses of nonlinear deformation you must use the [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]] ({{Version|1.0}}). The Elasticity equation is only for linear deformations.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use the default solver settings. However, using just one CPU and the default solver settings is in many cases faster than using several CPUs because the elasticity solver is only fast when {{PropertyData|Linear Solver Type}} is set to ''Direct'' (the default, described [[FEM_SolverElmer_SolverSettings#Linear_System|here]]). For multi-CPU solving one can only use the {{PropertyData|Linear Direct Method}} ''MUMPS''. However, MUMPS is not freely available as direct download.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|constraint fixed]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
It is highly recommended to use {{PropertyData|Linear Solver Type}} set to ''Direct'' (the default) because this is much faster and the results are more accurate.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1246146FEM SolverElmer SolverSettings2023-03-27T22:44:19Z<p>Uwestoehr: add info about MUMPS</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping (transient analyses)=== <!--T:9--><br />
<br />
'''Note''': FreeCAD 0.20.x provided the following settings already but only the last time result was output. First with FreeCAD 1.0 you will get an output for the different times.<br />
<br />
<!--T:10--><br />
For transient analyses the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
For how to visualize the results, see the [[FEM_SolverElmer#Visualization|Elmer visualization]] info.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over the solver time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used. [https://mumps-solver.org/ MUMPS] has to be installed manually to Elmer. It is only available as download per request via email.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1246145FEM EquationElasticity2023-03-27T22:39:02Z<p>Uwestoehr: add and improve notes</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Mechanical equations → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
'''Note''': For analyses of nonlinear deformation you must use the [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]] ({{Version|1.0}}). The Elasticity equation is only for linear deformations.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use the default solver settings. However, using just one CPU and the default solver settings is in many cases faster than using several CPUs because the elasticity solver is only fast when {{PropertyData|Linear Solver Type}} is set to ''Direct'' (the default, described [[FEM_SolverElmer_SolverSettings#Linear_System|here]]). For multi-CPU solving one can only use the {{PropertyData|Linear Direct Method}} ''MUMPS''. And MUMPS has to be installed to Elmer manually which is not an easy task.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|constraint fixed]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
It is highly recommended to use {{PropertyData|Linear Solver Type}} set to ''Direct'' (the default) because this is much faster and the results are more accurate.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1246078FEM SolverElmer SolverSettings2023-03-27T16:07:53Z<p>Uwestoehr: add info</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping (transient analyses)=== <!--T:9--><br />
<br />
'''Note''': FreeCAD 0.20.x provided the following settings already but only the last time result was output. First with FreeCAD 1.0 you will get an output for the different times.<br />
<br />
<!--T:10--><br />
For transient analyses the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
For how to visualize the results, see the [[FEM_SolverElmer#Visualization|Elmer visualization]] info.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over the solver time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer&diff=1246077FEM SolverElmer2023-03-27T16:06:11Z<p>Uwestoehr: </p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM SolverElmer<br />
|MenuLocation=Solver → Solver Elmer<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut={{KEY|S}} {{KEY|E}}<br />
|SeeAlso=[[FEM_SolverElmer_SolverSettings|FEM SolverElmer SolverSettings]], [[FEM_SolverCalculiX|FEM Solver CalculiX]], [[FEM_SolverZ88|FEM Solver Z88]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:10--><br />
[https://www.elmerfem.org Elmer] is an open source multiphysical simulation software mainly developed by CSC - IT Center for Science (CSC). Elmer development was started 1995 in collaboration with Finnish Universities, research institutes and industry. After it's open source publication in 2005, the use and development of Elmer has become international.<br />
<br />
<!--T:11--><br />
Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by partial differential equations which [https://www.csc.fi/web/elmer Elmer] solves by the Finite Element Method (FEM).<br />
<br />
<!--T:12--><br />
Creating the SolverElmer object in the Analysis container in FreeCAD, gives access to the Elmer Equations for simple or multiphysical analysis.<br />
<br />
<!--T:2--><br />
Since FreeCAD already has an extensive integration of [[Image:FEM_SolverCalculiX.svg|24px|link=FEM_SolverCalculixCxxtools]] [[FEM_SolverCalculixCxxtools|Calculix]] and [[Image:FEM_SolverZ88.svg|24px|link=FEM_SolverZ88]] [[FEM_SolverZ88|Z88]] as solvers for mechanical and thermo-mechanical analysis, Elmer will be preferred for computational fluid dynamics (CFD), heat, electrostatics and electrodynamics. It can also be used for mechanical FEA through the Elasticity equation or any combination of the aforementioned equations. This combination makes Elmer the preferred choice for multi-physics analyses.<br />
<br />
==Installation== <!--T:13--><br />
<br />
<!--T:14--><br />
Elmer requires two components to be interfaced with FreeCAD:<br />
* ElmerGrid is the interface handling meshes<br />
* ElmerSolver is handling the computation. <br />
There are standalone programs for both of these applications but their installation and usage are beyond the scope of the FreeCAD integration.<br />
<br />
<!--T:15--><br />
# Download and install the version best suited to your Operating System ([https://www.nic.funet.fi/pub/sci/physics/elmer/bin/windows/ Windows] or [https://www.nic.funet.fi/pub/sci/physics/elmer/bin/linux/Readme1st.txt Linux]). It is recommended to install the {{incode|mpi}} version to get multi-core support ({{Version|1.0}}).<br />
# In FreeCAD go to {{MenuCommand|Edit → Preferences → FEM → Elmer}}<br />
# In the [[FEM_Preferences#Elmer|FEM preferences]] set the correct path for both {{incode|ElmerGrid}} and {{incode|ElmerSolver}}, or {{VersionPlus|1.0}}: set the path for {{incode|ElmerSolver_mpi}} instead of {{incode|ElmerSolver}} to make Elmer use all available CPU cores.<br />
#: [[Image:Preferences-ElmerPath.png|Elmer Tab in FEM Preferences]]<br />
#: {{Caption|Elmer preferences dialog menu showing fields to locate important Elmer binaries on Windows OS}}<br />
<br />
<!--T:16--><br />
You are ready to use Elmer in FreeCAD.<br />
<br />
<!--T:23--><br />
{{VersionMinus|0.19}}: Now start FreeCAD and change the units scheme to ''MKS'' in the [[Preferences_Editor#Units|preferences]]. See [[#Notes|Notes]].<br />
<br />
==Usage== <!--T:9--><br />
<br />
<!--T:17--><br />
# Switch to the [[Image:Workbench_FEM.svg|24px]] [[FEM_Workbench|FEM Workbench]]<br />
# Create an [[FEM_Analysis|Analysis]] container by pressing the [[Image:FEM_Analysis.svg|22px]] icon.<br />
# Create a FEM Solver for Elmer, by pressing the [[Image:FEM_SolverElmer.svg|22px]] icon. <br />
#* Note: A successful analysis will require at least a Model (2D or 3D), a Material ([[FEM_MaterialFluid|Fluid]] or [[FEM_MaterialSolid|Solid]]), a [[FEM_MeshGmshFromShape|Mesh]], Equations and Boundary conditions <br />
#: [[Image:Elmer typical file tree.png]]<br />
#: {{Caption|Example of a [[Tree_view|tree view]] once a Solver for Elmer is activated}}<br />
# Edit the parameters for the solver in the [[Property_editor|Property editor]] {{Button|Data}} tab of the SolverElmer object in the model [[Tree_view|tree view]]<br />
# Double-click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object to prepare an analysis run<br />
#: [[Image:ElmerSolver TaskPanel.png|300px]]<br />
#: {{Caption|Dialog box to run an Elmer analysis}}<br />
# Select the path to write the analysis in by clicking {{Button|...}}<br />
# Click {{Button|Write}} to write the case files in the directory selected previously<br />
# Click {{Button|Run}} to start the analysis<br />
<br />
===Equations=== <!--T:24--><br />
<br />
<!--T:18--><br />
* To perform the analysis of a particular physical behavior, an Equation must be used (Flow, Heat, Electrostatics...)<br />
* Disambiguation: The term ''Equation'' is used in FreeCAD to describe the different physical mechanisms, the term ''Solver'' is used in all Elmer documents. Thus when using in FreeCAD the "Flow Equation", in reality Elmer uses the "Flow Solver" to find a solution to the Navier-Stokes equation.<br />
* One or several equations can be used at once with Elmer by simply adding the equation object under the SolverElmer object, thus performing multi-physics analyses:<br />
<br />
<!--T:19--><br />
# Click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object in the model [[Tree_view|tree view]]<br />
# Select one ore several of the available equations:<br />
#* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]<br />
#* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]<br />
#* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]<br />
#* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]<br />
#* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]<br />
#* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]<br />
#* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]<br />
<br />
===Solver Settings=== <!--T:26--><br />
<br />
<!--T:27--><br />
* Depending on the used equations, you must change the default solver settings. They are explained in the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
* The solver will by default perform a steady-state simulation. To perform a transient simulation (how the model behaves/develops over time) see section ''Timestepping (transient analyses)'' in the [[FEM_SolverElmer_SolverSettings#Timestepping_(transient_analyses)|Elmer solver settings]].<br />
<br />
===Visualization===<br />
<br />
The Elmer solver results are output in [[FEM_PostPipelineFromResult|result pipeline]] objects. ([[FEM_ResultShow|Result objects]] are not possible.)<br />
<br />
{{Version|1.0}}:<br />
<br />
For transient analyses you get a result pipeline for every output time step. To edit all of them at once, select the in the [[Tree_view|tree view]] and set the parameters in the [[property editor]].<br />
To make animations of the temporal progression, the best method is currently to<br />
* Hide the view of the first time result.<br />
* Select an object of your choice in the tree view, but not a pipeline object.<br />
* Hover with the mouse over the pipelines.<br />
<br />
The result is an animation like this:<br />
<br />
[[Image:ElmerSolver_TransientAnalysis.gif]]<br />
<br />
==Notes== <!--T:25--><br />
<br />
<!--T:20--><br />
* '''Important''': in order to get sensible results and to be able to exchange the Elmer input files (named ''case.sif'') with others, all values in the input files must be in SI units. In FreeCAD version 0.19 and earlier this is only the case if you use the unit scheme MKS in the [[Preferences_Editor#Units|preferences]].<br />
* Parameters for the Solver and for the Equations are independently set through the [[Property_editor|Property editor]] {{KEY|Data}} tab of their respective objects in the [[Tree_view|tree view]].<br />
* Each equation will have a priority, for example, if trying see the effect of a convective flow of hot air, the equation for Flow should be solved with higher priority than Heat, otherwise the solver will first solve Heat through conduction and then Flow.<br />
* 2D vs 3D cases: Elmer can be used to solve both 2D and 3D cases. However, when defining a 2D case, the faces need to be mapped in the XY plane of FreeCAD, otherwise the solver will try to compute a 3D case on a face, and normal vectors will be under-defined. Further information can be found in the FreeCAD forums: https://forum.freecadweb.org/viewtopic.php?f=18&t=48175<br />
<br />
==Documentation== <!--T:21--><br />
<br />
<!--T:22--><br />
The following link gives access to the full [https://www.nic.funet.fi/pub/sci/physics/elmer/doc/ documentation for Elmer]. This includes the manuals as well as tutorials. Note that documentation and files appended with "gui" generally concern the usage of the Elmer GUI and not the FreeCAD implementation of Elmer.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=File:ElmerSolver_TransientAnalysis.gif&diff=1246076File:ElmerSolver TransientAnalysis.gif2023-03-27T16:03:11Z<p>Uwestoehr: Uwestoehr uploaded a new version of File:ElmerSolver TransientAnalysis.gif</p>
<hr />
<div>== Summary ==<br />
initial</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer&diff=1246075FEM SolverElmer2023-03-27T15:44:46Z<p>Uwestoehr: info about visualization</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM SolverElmer<br />
|MenuLocation=Solver → Solver Elmer<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut={{KEY|S}} {{KEY|E}}<br />
|SeeAlso=[[FEM_SolverElmer_SolverSettings|FEM SolverElmer SolverSettings]], [[FEM_SolverCalculiX|FEM Solver CalculiX]], [[FEM_SolverZ88|FEM Solver Z88]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:10--><br />
[https://www.elmerfem.org Elmer] is an open source multiphysical simulation software mainly developed by CSC - IT Center for Science (CSC). Elmer development was started 1995 in collaboration with Finnish Universities, research institutes and industry. After it's open source publication in 2005, the use and development of Elmer has become international.<br />
<br />
<!--T:11--><br />
Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by partial differential equations which [https://www.csc.fi/web/elmer Elmer] solves by the Finite Element Method (FEM).<br />
<br />
<!--T:12--><br />
Creating the SolverElmer object in the Analysis container in FreeCAD, gives access to the Elmer Equations for simple or multiphysical analysis.<br />
<br />
<!--T:2--><br />
Since FreeCAD already has an extensive integration of [[Image:FEM_SolverCalculiX.svg|24px|link=FEM_SolverCalculixCxxtools]] [[FEM_SolverCalculixCxxtools|Calculix]] and [[Image:FEM_SolverZ88.svg|24px|link=FEM_SolverZ88]] [[FEM_SolverZ88|Z88]] as solvers for mechanical and thermo-mechanical analysis, Elmer will be preferred for computational fluid dynamics (CFD), heat, electrostatics and electrodynamics. It can also be used for mechanical FEA through the Elasticity equation or any combination of the aforementioned equations. This combination makes Elmer the preferred choice for multi-physics analyses.<br />
<br />
==Installation== <!--T:13--><br />
<br />
<!--T:14--><br />
Elmer requires two components to be interfaced with FreeCAD:<br />
* ElmerGrid is the interface handling meshes<br />
* ElmerSolver is handling the computation. <br />
There are standalone programs for both of these applications but their installation and usage are beyond the scope of the FreeCAD integration.<br />
<br />
<!--T:15--><br />
# Download and install the version best suited to your Operating System ([https://www.nic.funet.fi/pub/sci/physics/elmer/bin/windows/ Windows] or [https://www.nic.funet.fi/pub/sci/physics/elmer/bin/linux/Readme1st.txt Linux]). It is recommended to install the {{incode|mpi}} version to get multi-core support ({{Version|1.0}}).<br />
# In FreeCAD go to {{MenuCommand|Edit → Preferences → FEM → Elmer}}<br />
# In the [[FEM_Preferences#Elmer|FEM preferences]] set the correct path for both {{incode|ElmerGrid}} and {{incode|ElmerSolver}}, or {{VersionPlus|1.0}}: set the path for {{incode|ElmerSolver_mpi}} instead of {{incode|ElmerSolver}} to make Elmer use all available CPU cores.<br />
#: [[Image:Preferences-ElmerPath.png|Elmer Tab in FEM Preferences]]<br />
#: {{Caption|Elmer preferences dialog menu showing fields to locate important Elmer binaries on Windows OS}}<br />
<br />
<!--T:16--><br />
You are ready to use Elmer in FreeCAD.<br />
<br />
<!--T:23--><br />
{{VersionMinus|0.19}}: Now start FreeCAD and change the units scheme to ''MKS'' in the [[Preferences_Editor#Units|preferences]]. See [[#Notes|Notes]].<br />
<br />
==Usage== <!--T:9--><br />
<br />
<!--T:17--><br />
# Switch to the [[Image:Workbench_FEM.svg|24px]] [[FEM_Workbench|FEM Workbench]]<br />
# Create an [[FEM_Analysis|Analysis]] container by pressing the [[Image:FEM_Analysis.svg|22px]] icon.<br />
# Create a FEM Solver for Elmer, by pressing the [[Image:FEM_SolverElmer.svg|22px]] icon. <br />
#* Note: A successful analysis will require at least a Model (2D or 3D), a Material ([[FEM_MaterialFluid|Fluid]] or [[FEM_MaterialSolid|Solid]]), a [[FEM_MeshGmshFromShape|Mesh]], Equations and Boundary conditions <br />
#: [[Image:Elmer typical file tree.png]]<br />
#: {{Caption|Example of a [[Tree_view|tree view]] once a Solver for Elmer is activated}}<br />
# Edit the parameters for the solver in the [[Property_editor|Property editor]] {{Button|Data}} tab of the SolverElmer object in the model [[Tree_view|tree view]]<br />
# Double-click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object to prepare an analysis run<br />
#: [[Image:ElmerSolver TaskPanel.png|300px]]<br />
#: {{Caption|Dialog box to run an Elmer analysis}}<br />
# Select the path to write the analysis in by clicking {{Button|...}}<br />
# Click {{Button|Write}} to write the case files in the directory selected previously<br />
# Click {{Button|Run}} to start the analysis<br />
<br />
===Equations=== <!--T:24--><br />
<br />
<!--T:18--><br />
* To perform the analysis of a particular physical behavior, an Equation must be used (Flow, Heat, Electrostatics...)<br />
* Disambiguation: The term ''Equation'' is used in FreeCAD to describe the different physical mechanisms, the term ''Solver'' is used in all Elmer documents. Thus when using in FreeCAD the "Flow Equation", in reality Elmer uses the "Flow Solver" to find a solution to the Navier-Stokes equation.<br />
* One or several equations can be used at once with Elmer by simply adding the equation object under the SolverElmer object, thus performing multi-physics analyses:<br />
<br />
<!--T:19--><br />
# Click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object in the model [[Tree_view|tree view]]<br />
# Select one ore several of the available equations:<br />
#* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]<br />
#* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]<br />
#* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]<br />
#* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]<br />
#* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]<br />
#* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]<br />
#* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]<br />
<br />
===Solver Settings=== <!--T:26--><br />
<br />
<!--T:27--><br />
* Depending on the used equations, you must change the default solver settings. They are explained in the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
* The solver will by default perform a steady-state simulation. To perform a transient simulation (how the model behaves/develops over time) see section ''Timestepping (transient analyses)'' in the [[https://wiki.freecad.org/FEM_SolverElmer_SolverSettings#Timestepping_(transient_analyses)|Elmer solver settings]].<br />
<br />
===Visualization===<br />
<br />
The Elmer solver results are output in [[FEM_PostPipelineFromResult|result pipeline]] objects. ([[FEM_ResultShow|Result objects]] are not possible.)<br />
<br />
{{Version|1.0}}:<br />
<br />
For transient analyses you get a result pipeline for every output time step. To edit all of them at once, select the in the [[Tree_view|tree view]] and set the parameters in the [[property editor]].<br />
To make animations of the temporal progression, the best method is currently to<br />
* Hide the view of the first time result.<br />
* Select an object of your choice in the tree view, but not a pipeline object.<br />
* Hover with the mouse over the pipelines.<br />
<br />
The result is an animation like this:<br />
<br />
[[Image:ElmerSolver_TransientAnalysis.gif]]<br />
<br />
==Notes== <!--T:25--><br />
<br />
<!--T:20--><br />
* '''Important''': in order to get sensible results and to be able to exchange the Elmer input files (named ''case.sif'') with others, all values in the input files must be in SI units. In FreeCAD version 0.19 and earlier this is only the case if you use the unit scheme MKS in the [[Preferences_Editor#Units|preferences]].<br />
* Parameters for the Solver and for the Equations are independently set through the [[Property_editor|Property editor]] {{KEY|Data}} tab of their respective objects in the [[Tree_view|tree view]].<br />
* Each equation will have a priority, for example, if trying see the effect of a convective flow of hot air, the equation for Flow should be solved with higher priority than Heat, otherwise the solver will first solve Heat through conduction and then Flow.<br />
* 2D vs 3D cases: Elmer can be used to solve both 2D and 3D cases. However, when defining a 2D case, the faces need to be mapped in the XY plane of FreeCAD, otherwise the solver will try to compute a 3D case on a face, and normal vectors will be under-defined. Further information can be found in the FreeCAD forums: https://forum.freecadweb.org/viewtopic.php?f=18&t=48175<br />
<br />
==Documentation== <!--T:21--><br />
<br />
<!--T:22--><br />
The following link gives access to the full [https://www.nic.funet.fi/pub/sci/physics/elmer/doc/ documentation for Elmer]. This includes the manuals as well as tutorials. Note that documentation and files appended with "gui" generally concern the usage of the Elmer GUI and not the FreeCAD implementation of Elmer.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=File:ElmerSolver_TransientAnalysis.gif&diff=1246074File:ElmerSolver TransientAnalysis.gif2023-03-27T15:43:56Z<p>Uwestoehr: initial</p>
<hr />
<div>== Summary ==<br />
initial</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1246073FEM SolverElmer SolverSettings2023-03-27T12:40:44Z<p>Uwestoehr: add a note</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping (transient analyses)=== <!--T:9--><br />
<br />
'''Note''': FreeCAD 0.20.x provided the following settings already but only the last time result was output. First with FreeCAD 1.0 you will get an output for the different times.<br />
<br />
<!--T:10--><br />
For transient analyses the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over the solver time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Release_notes_1.0&diff=1246056Release notes 1.02023-03-27T12:24:16Z<p>Uwestoehr: add new Elmer feature</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{VeryImportantMessage|FreeCAD 1.0 is under development, there is no expected released date yet.}}<br />
<br />
<!--T:2--><br />
{{Message|<br />
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;69438 Release notes for v1.0] forum thread.<br />
<br />
<!--T:3--><br />
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.<br />
}}<br />
{{Message|All images on this page must use the {{FileName|_relnotes_1.0}} suffix}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:4--><br />
'''FreeCAD 1.0''' was released on '''DD MM 2023''', get it from the [[Download|Download]] page. This page lists all new features and changes.<br />
<br />
<!--T:5--><br />
Older FreeCAD release notes can be found in the [[Feature_list#Release_notes|Feature list]].<br />
<br />
<!--T:6--><br />
Placeholder for an eye-catching image selected by the admins from the [https://forum.freecadweb.org/viewforum.php?f=24 user showcases forum].<br />
<br />
== General == <!--T:7--><br />
<br />
== User interface == <!--T:8--><br />
<br />
<!--T:82--><br />
{|cellpadding=5<br />
| [[File:Navi_Cube_relnotes_1.0.gif]]<br />
| The navigation cube corner faces are now hexagonal and bigger, making them easier to click.<br />
The font, font size and button color (the arrows around the cube) can now also be changed in the [[Preferences_Editor#Navigation|preferences]].</br><br />
[https://github.com/FreeCAD/FreeCAD/pull/7876 Pull request #7876], [https://github.com/FreeCAD/FreeCAD/pull/8266 Pull request #8266] and [https://github.com/FreeCAD/FreeCAD/pull/8646 Pull request #8646].<br />
|}<br />
<br />
<!--T:85--><br />
{|cellpadding=5<br />
| [[File:Part_SectionCut_example_relnotes_1.0.gif|384px]]</br>Persistent section cut of intersecting objects.</br>Click on the image to see the animation.<br />
| The [[Part_SectionCut|Section Cut]] tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues.<br>[https://github.com/FreeCAD/FreeCAD/pull/8252 Pull request #8252].<br />
|}<br />
<br />
<!--T:56--><br />
{| cellpadding=5<br />
| [[File:Measurement-Part_relnotes_1.0.png|384px]]<br />
| The display style of [[Part_Workbench#Measure|measurement]] results created using the [[Part_Workbench|Part]] or [[PartDesign_Workbench|PartDesign]] workbench can now be changed in the [[PartDesign_Preferences#Measure|preferences]].<br />
[https://github.com/FreeCAD/FreeCAD/pull/7148 Pull request #7148]<br />
|}<br />
<br />
<!--T:80--><br />
{| cellpadding=5<br />
| [[File:WbSelector_relnotes_1.0.png|384px]]<br />
| The workbench selector can now optionally be put in the menubar instead of the toolbar area.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7679 Pull request #7679]<br />
|}<br />
<br />
<br />
=== Further user interface improvements === <!--T:9--><br />
<br />
<!--T:57--><br />
* The button for [[Image:Std_UserEditModeDefault.svg|24px]] [[Std_UserEditMode|Edit Mode]] has been removed from the standard toolbar. It can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7570 Pull request #7570]<br />
* The buttons for [[Image:Std_Print.svg|24px]] [[Std_Print|Print]], [[Image:Std_Copy.svg|24px]] [[Std_Copy|Copy]], [[Image:Std_Paste.svg|24px]] [[Std_Paste|Paste]] and [[Image:Std_Cut.svg|24px]] [[Std_Cut|Cut]] have been removed from the standard toolbar. They can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7571 Pull request #7571] and [https://github.com/FreeCAD/FreeCAD/commit/ea9a04e commit ea9a04e]<br />
* Commands to [[Std_StoreWorkingView|store]] and [[Std_RecallWorkingView|recall]] a temporary working view have been added. [https://github.com/FreeCAD/FreeCAD/pull/7525 Pull request #7525]<br />
* Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by [[Draft_Line|Draft Line]]) are disabled if the widget doesn't have the focus and the [[Fine-tuning#Mouse_related|ComboBoxWheelEventFilter]] parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. [https://github.com/FreeCAD/FreeCAD/pull/7561 Pull request #7561]<br />
* It is now possible to set a default transparency for new [[Part_Module|Part]] or [[PartDesign_Workbench|PartDesign]] objects in the [[PartDesign_Preferences|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7103 Pull request #7103]<br />
* There is the new orbit style '''Free Turntable'''. It can either be enabled in the [[Preferences_Editor#Navigation|Preferences]] or by pressing the {{Button|[[File:NavigationCAD_dark.svg|16px]]}} button in the [[Status_bar|Status bar]] and then using the menu {{MenuCommand|Settings → Orbit}}). [https://github.com/FreeCAD/FreeCAD/pull/8048 Pull Request #8048]<br />
* The [[Std_SetAppearance|Std SetAppearance]] task panel now also has a button to set the Point Color property. [https://github.com/FreeCAD/FreeCAD/pull/7708 Pull request #7708]<br />
* A button has been added to switch the colors of the [[3D_view|3D view]] background gradient in the [[Preferences_Editor#Colors|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7155 Pull request #7155]<br />
* All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the [[Property_editor|property editor]] changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. [https://github.com/FreeCAD/FreeCAD/pull/7723 Pull request #7723]<br />
* The Output window has been renamed to Report view for uniformity with the UI. [https://github.com/FreeCAD/FreeCAD/pull/7739 Pull Request #7739]<br />
<br />
== Core system and API == <!--T:10--><br />
<br />
=== Core === <!--T:11--><br />
<br />
<!--T:89--><br />
* The function '''cbrt(x)''' for cubic roots was added for use in [[Expressions#Exponential_and_logarithmic_functions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8629 Pull request #8629]<br />
* Many new [[Property#All_property_types|Properties]] are available for scripting. [https://github.com/FreeCAD/FreeCAD/pull/6717 Pull request #6717]<br />
* Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in [[Expressions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8603 Pull request #8603].<br />
<br />
=== API === <!--T:12--><br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
==== New Python API ==== <!--T:13--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:58--><br />
* ''BSplineSurfacePy::scaleKnotsToBounds'': Scales the U and V knots lists to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7258 Pull request #7258] and [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
* ''BSplineCurvePy::scaleKnotsToBounds'': Scales the knots list to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
<br />
<!--T:14--><br />
* ''ShapeFix_EdgeConnectPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/4d4adb93 commit 4d4adb93]<br />
* ''ShapeFix_EdgePy'': Fixing invalid edge. [https://github.com/FreeCAD/FreeCAD/commit/4089cbfb commit 4089cbfb]<br />
* ''ShapeFix_FaceConnectPy'': Rebuilds connectivity between faces in shell. [https://github.com/FreeCAD/FreeCAD/commit/a0eb2e9d commit a0eb2e9d]<br />
* ''ShapeFix_FacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/b6cd635c commit b6cd635c]<br />
* ''ShapeFix_FixSmallFacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/4c2946c8 commit 4c2946c8]<br />
* ''ShapeFix_FixSmallSolidPy'': Fixing solids with small size. [https://github.com/FreeCAD/FreeCAD/commit/b70d8d37 commit b70d8d37]<br />
* ''ShapeFix_FreeBoundsPy'': Intended to output free bounds of the shape. [https://github.com/FreeCAD/FreeCAD/commit/1ee1aee1 commit 1ee1aee1]<br />
* ''ShapeFix_RootPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_ShapePy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/87db9dcc commit 87db9dcc]<br />
* ''ShapeFix_ShapeTolerancePy'': Modifies tolerances of sub-shapes (vertices, edges, faces). [https://github.com/FreeCAD/FreeCAD/commit/125d5b63 commit 125d5b63]<br />
* ''ShapeFix_ShellPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_SolidPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/8d568793 commit 8d568793]<br />
* ''ShapeFix_SplitCommonVertexPy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/4b44c54c commit 4b44c54c]<br />
* ''ShapeFix_SplitToolPy'': Tool for splitting and cutting edges. [https://github.com/FreeCAD/FreeCAD/commit/bbecc3f2 commit bbecc3f2]<br />
* ''ShapeFix_WireframePy'': Provides methods for fixing wireframe of shape. [https://github.com/FreeCAD/FreeCAD/commit/6843a461 commit 6843a461]<br />
* ''ShapeFix_WirePy'': Class for fixing operations on wires. [https://github.com/FreeCAD/FreeCAD/commit/94f6279a commit 94f6279a]<br />
* ''ShapeFix_WireVertexPy'': Fixing disconnected edges in the wire. [https://github.com/FreeCAD/FreeCAD/commit/8c6ffc99 commit 8c6ffc99]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
==== Removed Python API ==== <!--T:59--><br />
<br />
<!--T:60--><br />
* ''FreeCAD.EndingAdd'': replaced by ''FreeCAD.addImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
* ''FreeCAD.EndingGet'': replaced by ''FreeCAD.getImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
== Addon Manager == <!--T:16--><br />
<br />
== Arch Workbench == <!--T:17--><br />
<br />
<!--T:84--><br />
* Several edit mode issues have been fixed and the [[Tree_view|Tree view]] context menus for Arch objects have been improved. Objects that can be edited now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/8122 Pull request #8122]<br />
<br />
=== Further Arch improvements === <!--T:61--><br />
<br />
<!--T:62--><br />
* [[Arch_Profile|Arch Profile]] objects now support modification of the profile type after creation. [https://github.com/FreeCAD/FreeCAD/pull/7217 Pull request #7217]<br />
* The Terrain of an [[Arch_Site|Arch Site]] can now also be a solid. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* An [[Arch_Site|Arch Site]] no longer shows a phantom representation of the objects in its Group. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* [[Arch_SectionPlane|Arch SectionPlane]] objects now handle non-solid objects the same as solid objects. [https://github.com/FreeCAD/FreeCAD/pull/8688 Pull request #8688]<br />
<br />
== Draft Workbench == <!--T:18--><br />
<br />
<!--T:63--><br />
* The inaccuracy of [[Draft_Snap_Near|Draft Snap Near]] when snapping to curves was fixed. In addition, [[Draft_Snap_Perpendicular|Draft Snap Perpendicular]] can now also snap to faces and find multiple points. To snap to a vertex (e.g. a [[Draft_Point|Draft Point]]) [[Draft_Snap_Endpoint|Draft Snap Endpoint]] must now be used instead of [[Draft_Snap_Near|Draft Snap Near]]. [https://github.com/FreeCAD/FreeCAD/pull/7132 Pull request #7132]<br />
* To make working with [[Draft_Layer|layers]] easier their drag and drop behavior was modified. If you drop an object from a [[Std_Group|Std Group]], or a group-like object such as an [[Arch_BuildingPart|Arch BuildingPart]], on a layer, it is no longer removed from the group, and vice versa. This works without holding down the {{KEY|Ctrl}} key. [https://github.com/FreeCAD/FreeCAD/pull/7462 Pull request #7462]<br />
* The [[Draft_PointArray|Draft PointArray]] command now supports more point object types. Any object with a shape and vertices, as well as a [[Mesh_Workbench|mesh]] and a [[Points_Workbench|point cloud]] can be used. [https://github.com/FreeCAD/FreeCAD/pull/7597 Pull request #7597]<br />
* The [[Tree_view|Tree view]] context menus for Draft objects have been improved. Objects that can be edited with the [[Draft_Edit|Draft Edit]] command, or that have a dedicated edit solution, now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/7970 Pull request #7970]<br />
* The properties of Draft annotation objects have been unified. [[Draft_Text|Draft Text]], [[Draft_Dimension|Draft Dimension]] and [[Draft_Label|Draft Label]] objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. [https://github.com/FreeCAD/FreeCAD/issues/7861 Issue #7861] and [https://github.com/FreeCAD/FreeCAD/pull/8081 Pull request #8081]<br />
* Undo/Redo did not work properly for the Draft modification commands on Windows. [https://github.com/FreeCAD/FreeCAD/pull/8267 Pull request #8267]<br />
<br />
=== Further Draft improvements === <!--T:19--><br />
<br />
<!--T:73--><br />
* Several [[Draft_PathArray|Draft PathArray]] related issues have been fixed. [https://github.com/FreeCAD/FreeCAD/pull/7506 Pull request #7506] and [https://github.com/FreeCAD/FreeCAD/pull/7662 Pull request #7662]<br />
* The [[Draft_Edit|Draft Edit]] command has received several improvements. For [[Draft_Wire|wires]], [[Draft_BSpline|B-splines]] and [[Draft BezCurve|Bézier curves]] a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. [https://github.com/FreeCAD/FreeCAD/pull/7527 Pull request #7527] and [https://github.com/FreeCAD/FreeCAD/pull/7541 Pull request #7541]<br />
* The [[Draft_Snap|Draft Snap]] toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. [https://github.com/FreeCAD/FreeCAD/pull/7656 Pull request #7656]<br />
* In the task panel of the [[Draft_SetStyle|Draft SetStyle]] command the "Texts/dims" button has been replaced by the "Annotations" button. Pressing this button will process all annotations, including [[Draft_Label|Draft Labels]]. Several minor additional issues were also fixed. [https://github.com/FreeCAD/FreeCAD/pull/8190 Pull request #8190], [https://github.com/FreeCAD/FreeCAD/pull/8195 Pull request #8195] and [https://github.com/FreeCAD/FreeCAD/pull/8196 Pull request #8196]<br />
* Several [[Draft_AnnotationStyleEditor|Draft AnnotationStyleEditor]] bugs have been fixed and a separate Text color button has been added. [https://github.com/FreeCAD/FreeCAD/pull/8207 Pull request #8207]<br />
* Start and End Offset properties have been added to [[Draft_PathArray|Draft PathArray]] objects. [https://github.com/FreeCAD/FreeCAD/pull/8295 Pull request #8295]<br />
* A Count property has been added to the arrays that lacked this property: the non-Link versions of [[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]] and [[Draft_CircularArray|Draft CircularArray]]. [https://github.com/FreeCAD/FreeCAD/pull/8433 Pull request #8433]<br />
<br />
== FEM Workbench == <!--T:20--><br />
<br />
<!--T:86--><br />
{| cellpadding=5<br />
| [[File:FEM_PostFilterContours_relnotes_1.0.png|384px]]</br>Iso-contours, depicting the y-component of the absolute magnetic</br>flux density in and around a copper wire that is flown through by</br>electric current at a frequency of 100 kHz.</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| There is the new [[Image:FEM_PostFilterContours.svg|24px]] [[FEM_PostFilterContours|Contours filter]] filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8462 Pull request #8462]<br />
|}<br />
<br />
<!--T:64--><br />
{| cellpadding=5<br />
| [[File:FEM_Elmer-Multithread_relnotes_1.0.png|384px]]</br>Simulation result (of flowing water being heated) where 8 mesh regions</br>are visible (one for every CPU core used).<br />
| It is now possible to run the solver [[FEM_SolverElmer|Elmer]] using multiple CPU cores. For more info about the caveats, see [https://forum.freecadweb.org/viewtopic.php?p=610617#p610617 this forum post]<br />
[https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
|}<br />
<br />
<!--T:87--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic2D_relnotes_1.0.png|300px]]</br>Simulation result of the imaginary part of the current density in</br>a crucible that was heated electrically by a surrounding coil.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 16 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic2D.svg|24px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]] was added. With this it is possible to perform electromagnetic simulations in 2D.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8355 Pull request #8355]<br />
|}<br />
<br />
<!--T:88--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic_relnotes_1.0.png|384px]]</br>Simulation result of the imaginary part of the magnetic flux density in</br>and around a copper wire that is flown through by electric current at</br>a frequency of 100 kHz.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic.svg|24px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]] was added. With this it is possible to perform electromagnetic simulations.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8380 Pull request #8380]<br />
|}<br />
<br />
<!--T:95--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationDeformation_relnotes_1.0.png|384px]]</br>Simulation result of an iron U-wire that is deformed</br>by pressing the ends of the U together.</br>For more info about this model, see section 8 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]] was added. With this it is possible to perform nonlinear elasticity analyses (deformation).<br />
[https://github.com/FreeCAD/FreeCAD/pull/8981 Pull request #8981]<br />
|}<br />
<br />
=== Further FEM improvements === <!--T:21--><br />
<br />
<!--T:65--><br />
* When performing analyses using the [[Image:FEM_SolverCalculixCxxtools.svg|24px]] [[FEM_SolverCalculixCxxtools|CalculiX solver]], there is now also a [[FEM_PostPipelineFromResult|results pipeline]] created to visualize the results. [https://github.com/FreeCAD/FreeCAD/pull/8525 Pull request #8525] and [https://github.com/FreeCAD/FreeCAD/pull/8903 Pull request #8903]<br />
* It is now possible to perform [[FEM_SolverElmer_SolverSettings#Timestepping_(transient_analyses)|transient analyses]] when using the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer solver]]. [https://github.com/FreeCAD/FreeCAD/pull/9056 Pull request #9056]<br />
* The [[Image:FEM_ConstraintInitialPressure.svg|24px]] [[FEM_ConstraintInitialPressure|initial pressure constraint]] was added to set the initial internal pressure of fluids. [https://github.com/FreeCAD/FreeCAD/pull/7364 Pull request #7364]<br />
* The [[Image:FEM_ConstraintCurrentDensity.svg|24px]] [[FEM_ConstraintCurrentDensity|current density constraint]] was added to set current densities for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8348 Pull request #8348]<br />
* The [[Image:FEM_ConstraintMagnetization.svg|24px]] [[FEM_ConstraintMagnetization|magnetization constraint]] was added to set magnetizations for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8393 Pull request #8393]<br />
* The [[Image:FEM_ConstraintFlowVelocity.svg|24px]] [[FEM_ConstraintFlowVelocity|flow velocity constraint]] and [[Image:FEM_ConstraintInitialFlowVelocity.svg|24px]] [[FEM_ConstraintInitialFlowVelocity|initial flow velocity constraint]] were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). [https://github.com/FreeCAD/FreeCAD/pull/8963 Pull request #8963] and [https://github.com/FreeCAD/FreeCAD/pull/8964 Pull request #8964]</br>'''Note:''' This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.</br>'''Also note:''' until FreeCAD 0.20.3 the results of the flow solver were wrong (fluid density and viscosity were treated a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct.<br />
* It is now possible to define in the [[Image:FEM_ConstraintDisplacement.svg|24px]] [[FEM_ConstraintDisplacement|displacement constraint]] displacements as equations (displacement according to the current solver time).<br />
* The [[Image:FEM_ConstraintBodyHeatSource.svg|24px]] [[FEM_ConstraintBodyHeatSource|body heat source constraint]] has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. [https://github.com/FreeCAD/FreeCAD/pull/7367 Pull request #7367]<br />
* The [[Image:FEM_ConstraintSpring.svg|24px]] [[FEM_ConstraintSpring|spring constraint]] was not used by any solver. Now it can be used by the [[FEM_SolverElmer|Elmer]] solver via the equations [[FEM_EquationDeformation|Deformation]] and [[FEM_EquationElasticity|Elasticity]]. [https://github.com/FreeCAD/FreeCAD/pull/9005 Pull request #9005]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionCylinder.svg|24px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8735 Pull request #8735]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionBox.svg|24px]] [[FEM_PostCreateFunctionBox|Filter function box]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8825 Pull request #8825]<br />
* It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an [[FEM_SolverElmer|Elmer]] simulation, when more than one CPU core is used for calculations. [https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
* Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. [https://github.com/FreeCAD/FreeCAD/pull/7467 Pull request #7467]<br />
* [[Image:FEM_FemMesh2Mesh.svg|24px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]] has the new parameter ''scale'' to define the scale of deformed mesh using Python. [https://forum.freecadweb.org/viewtopic.php?f=18&t=71936 Forum thread] and [https://github.com/FreeCAD/FreeCAD/pull/7715 Pull request #7715]<br />
* The [[FEM_Preferences|preferences]] have a new option to define what solver should automatically be added when creating a new analysis.<br />
* Usability improvements:<br />
** When loading a FreeCAD file containing an analysis and you are already in the FEM workbench, the analysis gets automatically activated (you have immediate access to all FEM toolbar buttons).<br />
** The toolbar only has buttons for solvers installed on your system. Unavailable solvers are no longer having a toolbar button.<br />
* New example files for the following equations are available via the [[FEM_Examples|FEM Examples]]: [[FEM_EquationDeformation|Deformation]], [[FEM_EquationFlow|Flow]], [[FEM_EquationFlux|Flux]], [[FEM_EquationHeat|Heat]], [[FEM_EquationMagnetodynamic|Magnetodynamic]] and [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D]]. Pull requests [https://github.com/FreeCAD/FreeCAD/pull/8550 #8550], [https://github.com/FreeCAD/FreeCAD/pull/8569 #8569], [https://github.com/FreeCAD/FreeCAD/pull/8579 #8579], [https://github.com/FreeCAD/FreeCAD/pull/8597 #8597], [https://github.com/FreeCAD/FreeCAD/pull/8630 #8630] and [https://github.com/FreeCAD/FreeCAD/pull/9004 #9004].<br />
* New material card for carbon dioxide and a titanium alloy. [https://github.com/FreeCAD/FreeCAD/pull/8332 Pull request #8332] and [https://github.com/FreeCAD/FreeCAD/pull/8636 Pull request #8636]<br />
<br />
== Export == <!--T:22--> <br />
<br />
== Mesh == <!--T:23--><br />
<br />
=== Further Mesh improvements === <!--T:24--><br />
<br />
<!--T:75--><br />
* Support to add transparencies to a mesh. [https://forum.freecadweb.org/viewtopic.php?f=22&t=72531 Forum thread] and [https://github.com/FreeCAD/FreeCAD/commit/f88305e Commit f88305e]<br />
<br />
== OpenSCAD Workbench == <!--T:25--><br />
<br />
== Part Workbench == <!--T:26--><br />
<br />
=== Further Part improvements === <!--T:27--><br />
<br />
<!--T:94--><br />
* The [[Part_PointsFromMesh|Part PointsFromMesh]] command has been extended to accept any geometric object as input. [https://github.com/FreeCAD/FreeCAD/pull/8730 Pull request #8730]<br />
<br />
== PartDesign Workbench == <!--T:28--><br />
<br />
<!--T:76--><br />
{| cellpadding=5<br />
| [[Image:PD_Counterdrill_relnotes_1.0.png|384px]]</br>A counterdrill hole.<br />
| The [[PartDesign_Hole|Hole]] dialog supports the screw head type ''Counterdrill''.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7562 Pull request #7562]<br />
|-<br />
|}<br />
<br />
=== Further PartDesign improvements === <!--T:29--><br />
<br />
<!--T:77--><br />
* In the [[PartDesign_Hole|Hole]] dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. [https://github.com/FreeCAD/FreeCAD/pull/7654 Pull request #7654]<br />
* In the [[PartDesign_AdditiveLoft|Additive Loft]] and [[PartDesign_SubtractiveLoft|Subtractive Loft]] dialogs, the previously non-functional option '''Closed''' does now create a closed loft (like a ring). [https://github.com/FreeCAD/FreeCAD/pull/8748 Pull request #8748]<br />
* The [[Sketcher_ValidateSketch|Validate sketch]] command was added to Helper toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The unusable [[Sketcher_LeaveSketch|Leave sketch]] and [[Sketcher_ViewSketch|View sketch]] commands were removed from the menu. The [[Sketcher_EditSketch|Edit sketch]], [[Sketcher_MergeSketches|Merge sketches]] and [[Sketcher_MirrorSketch|Mirror sketch]] commands were added to the menu. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create [https://en.wikipedia.org/wiki/Spline_(mechanical) involute splines] too. [https://github.com/FreeCAD/FreeCAD/pull/8184 Pull request #8184]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] now offers profile shifting. [https://github.com/FreeCAD/FreeCAD/issues/5618 Issue #5618] and [https://github.com/FreeCAD/FreeCAD/pull/8934 Pull request #8934]<br />
<br />
== Path Workbench == <!--T:30--><br />
<br />
<!--T:31--><br />
* Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. [https://github.com/FreeCAD/FreeCAD/pull/6637 Pull request #6637]<br />
<br />
<!--T:32--><br />
* Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, WCS, or operation label. This is in addition to the other existing substitution strings like date, job name, etc.<br />
<br />
<!--T:66--><br />
* Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.[https://github.com/FreeCAD/FreeCAD/pull/7469 Pull request #7469]<br />
<br />
== Plot module == <!--T:33--><br />
<br />
== Sketcher Workbench == <!--T:34--><br />
<br />
<!--T:81--><br />
{| cellpadding=5<br />
| [[File:Constrain B-spline knots_relnotes_1.0.gif|384px]]</br>Dragging of B-spline knots.</br>Click on the image to see the animation.<br />
| B-spline knots can now be dragged around and constrained like any other sketch point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7484 Pull request #7484]<br />
|-<br />
|}<br />
<br />
<!--T:67--><br />
{| cellpadding=5<br />
| [[File:sketcher-move-piece_relnotes_1.0.gif|384px]]</br>Dragging of a B-spline.</br>Click on the image if the animation does not start.<br />
| Dragging a B-spline now only moves the part between knots.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7110 Pull request #7110]<br />
|-<br />
|}<br />
<br />
<!--T:83--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Join_Curves_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The [[Sketcher_JoinCurves|Join curves]] tool has been added. It can combine multiple curves into a single B-spline.<br />
[https://github.com/FreeCAD/FreeCAD/pull/6507 Pull request #6507]<br />
|-<br />
|}<br />
<br />
<!--T:72--><br />
{| cellpadding=5<br />
| [[File:Sketcher_BackEdit_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7417 Pull request #7417]<br />
|-<br />
|}<br />
<br />
<!--T:90--><br />
{| cellpadding=5<br />
| [[File:Grid rework.png|384px]]<br />
| The Sketcher grid has been reworked. The [[Sketcher_Grid|Grid]] tool has been added. Automatic rescalling of grid option has been added.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:91--><br />
{| cellpadding=5<br />
| [[File:Constraint widget.png|384px]]<br />
| The Sketcher Constraint widget has been reworked to simplify the UI.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7566 Pull request #7566]<br />
|-<br />
|}<br />
<br />
<!--T:78--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Element_Widget_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7567 Pull request #7567]<br />
|-<br />
|}<br />
<br />
<!--T:92--><br />
{| cellpadding=5<br />
| [[File:Sketcher grid relnotes 1.0.gif.gif|384px]]<br />
| A feature to automatically resize the grid according to the zoom level and other improvements were introduced.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:93--><br />
{| cellpadding=5<br />
| [[File:Sketcher layers relnotes 1.0.gif|384px]]<br />
| Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road.<br />
This PR also removes the rendering order options (no longer needed) and the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8716 Pull request #8716]<br />
|-<br />
|}<br />
<br />
=== Further Sketcher improvements === <!--T:35--><br />
<br />
<!--T:74--><br />
* The toolbar button for [[Sketcher_ConstrainSnellsLaw|Constrain refraction (Snell's law)]] has been removed. [https://github.com/FreeCAD/FreeCAD/commit/ef62fc3 Commit ef62fc3]<br />
* The [[Sketcher_Workbench#Dimensional_constraints|Dimensional Constraints]] and Quantity Spin Boxes now support the same math as [[Expressions|Expressions]] (Evaluated in place). [https://github.com/FreeCAD/FreeCAD/pull/7124 Pull Request #7124]<br />
* The toolbar buttons for [[Sketcher_SelectRedundantConstraints|Select redundant constraints]] and [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]] have been removed. [https://github.com/FreeCAD/FreeCAD/pull/7568 Pull request #7568]<br />
* The toolbar button for [[Sketcher_StopOperation|Stop operation]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7569 Pull request #7569]<br />
* The 'Edit controls' section in the Sketcher dialog has been made optional. [https://github.com/FreeCAD/FreeCAD/pull/7572 Pull request #7572]<br />
* The toolbar button for [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7603 Pull request #7603]<br />
* The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. [https://github.com/FreeCAD/FreeCAD/pull/7655 Pull request #7655]<br />
* [[Sketcher_ConstrainCoincident|Coincident constraint]] can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. [https://github.com/FreeCAD/FreeCAD/pull/7703 Pull request #7703]<br />
* [[Sketcher_CarbonCopy|Carbon copy]] if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. [https://github.com/FreeCAD/FreeCAD/pull/7688 Pull request #7688]<br />
* The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. [https://github.com/FreeCAD/FreeCAD/pull/8864 Pull request #8864]<br />
* [[Sketcher_Split|Split]] now supports more curves (ellipses, parabolas, hyperbolas and B-splines). [https://github.com/FreeCAD/FreeCAD/pull/6971 Pull request #6971]<br />
<br />
== Spreadsheet Workbench == <!--T:36--><br />
<br />
=== Further Spreadsheet improvements === <!--T:37--><br />
<br />
== TechDraw Workbench == <!--T:38--><br />
<br />
<!--T:68--><br />
{| cellpadding=5<br />
| [[File:TechDraw_SurfaceFinishExample_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_SurfaceFinishSymbol|SurfaceFinishSymbol]] tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing [[TechDraw_LeaderLine|LeaderLine]] tool can be used to properly refer oriented symbols to the edges of an object.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7227 Pull request #7227]<br />
|-<br />
| [[File:TechDraw_ComplexSection_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_ComplexSection|ComplexSection]] tool was added to allow for the creation of half, offset and aligned sections.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
|-<br />
|}<br />
<br />
=== Further TechDraw improvements === <!--T:39--><br />
<br />
<!--T:69--><br />
* Navigation modes have been updated to match those used in the 3D view. [https://github.com/FreeCAD/FreeCAD/pull/7081 Pull request #7081] and [https://github.com/FreeCAD/FreeCAD/pull/7107 Pull request #7107]<br />
* Bitmap hatching was fixed. [https://github.com/FreeCAD/FreeCAD/issues/6582 Issue #6582] and [https://github.com/FreeCAD/FreeCAD/pull/7121 Pull request #7121]<br />
* Support for adjustable gaps for extension lines of [[TechDraw_Preferences#Dimensions|dimensions]] was added. [https://github.com/FreeCAD/FreeCAD/pull/7133 Pull request #7133]<br />
* Multithreading was introduced for hidden line removal and face finding. [https://github.com/FreeCAD/FreeCAD/pull/7377 Pull request #7377]<br />
* The face detection algorithm was improved. [https://github.com/FreeCAD/FreeCAD/pull/7448 Pull request #7448]<br />
* The [[TechDraw_PrintAll|PrintAll]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_StackGroup|Four tools]] to control the stacking order of views were added. [https://github.com/FreeCAD/FreeCAD/issues/6012 Issue #6012] and [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_ActiveView|ActiveView]] now creates a screen capture instead of an SVG image. [https://github.com/FreeCAD/FreeCAD/pull/7471 Pull request #7471]<br />
* All Latin script templates have been converted to "plain svg". [https://github.com/FreeCAD/FreeCAD/pull/7472 Pull request #7472]<br />
* A preview was added to the task panel of the [[TechDraw_SectionView|SectionView]] tool. [https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
* Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.<br />
* The [[TechDraw_HoleShaftFit|HoleShaftFit]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8455 Pull request #8455]<br />
* The [[TechDraw_AxoLengthDimension|AxoLengthDimension]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8359 Pull request #8359]<br />
* 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
* The [[TechDraw_DimensionRepair|DimensionRepair]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
<br />
== Web == <!--T:40--><br />
<br />
== External workbenches == <!--T:41--><br />
<br />
=== A2plus === <!--T:42--><br />
<br />
=== Assembly3 === <!--T:43--><br />
<br />
=== Assembly4 === <!--T:44--><br />
<br />
=== FCGear === <!--T:45--><br />
<br />
=== Ship === <!--T:46--><br />
<br />
== Compilation == <!--T:47--><br />
<br />
<!--T:48--><br />
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.8 according to the [[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 development goals]].<br />
<br />
<!--T:49--><br />
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|macOS]].<br />
<br />
<!--T:50--><br />
The supported operating systems are:<br />
* Windows 7, 8, 10 and 11<br />
* Linux Ubuntu Focal Fossa (20.04) and newer<br />
* macOS: 10.12 Sierra or newer<br />
<br />
== Known Limitations == <!--T:51--><br />
<br />
===32bit Windows=== <!--T:52--><br />
<br />
<!--T:53--><br />
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.<br />
<br />
===Remote Desktop under Windows=== <!--T:54--><br />
<br />
<!--T:55--><br />
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver.<br />
Only if this doesn't help:<br />
* Download [https://downloads.fdossena.com/geth.php?r=mesa64-latest this] OpenGL library for 64bit Windows and extract it.<br />
* Rename the DLL file to ''opengl32sw.dll'' and copy it to the ''bin'' subfolder of FreeCAD's installation folder (overwrite the existing DLL there).<br />
<br />
===macOS: Start Workbench shows blank page === <!--T:70--><br />
<br />
<!--T:71--><br />
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|FreeCAD-1.0 → Preferences → Display}}.<br />
<br />
<br />
</translate><br />
[[Category:News{{#translation:}}]]<br />
[[Category:Documentation{{#translation:}}]]<br />
[[Category:Releases{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Workbench&diff=1246055FEM Workbench2023-03-27T12:22:07Z<p>Uwestoehr: solver objects are not independent, also uniform wording and remove now obsolete CCX sinfo</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:142--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
<!--T:156--><br />
[[Image:Workbench_FEM.svg|thumb|128px|FEM workbench icon]]<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
== Introduction == <!--T:64--><br />
<br />
<!--T:1--><br />
The [[FEM_Workbench|FEM Workbench]] provides a modern [https://en.wikipedia.org/wiki/Finite_element_analysis finite element analysis] (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).<br />
<br />
</translate><br />
[[Image:FemWorkbench.jpg|300px]]<br />
<translate><br />
<br />
== Workflow == <!--T:65--><br />
<br />
<!--T:20--><br />
The steps to carry out a finite element analysis are:<br />
# Preprocessing: setting up the analysis problem.<br />
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.<br />
## Creating an analysis.<br />
### Adding simulation constraints such as loads and fixed supports to the geometric model.<br />
### Adding materials to the parts of the geometric model.<br />
### Creating a finite element mesh for the geometrical model, or importing it from a different application.<br />
# Solving: running an external solver from within FreeCAD.<br />
# Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.<br />
<br />
<!--T:33--><br />
The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.<br />
<br />
</translate><br />
[[Image:FEM_Workbench_workflow.svg|600px]]<br />
<translate><br />
<br />
<!--T:146--><br />
{{Caption|Workflow of the FEM Workbench; the workbench calls two external programs to perform meshing of a solid object, and perform the actual solution of the finite element problem}}<br />
<br />
== Menu: Model == <!--T:66--><br />
<br />
<!--T:79--><br />
* [[Image:FEM_Analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next. <br />
<br />
=== Materials === <!--T:67--><br />
<br />
<!--T:80--><br />
* [[Image:FEM_MaterialSolid.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a solid material from the database.<br />
<br />
<!--T:81--><br />
* [[Image:FEM_MaterialFluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a fluid material from the database.<br />
<br />
<!--T:82--><br />
* [[Image:FEM_MaterialMechanicalNonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you add a nonlinear mechanical material model.<br />
<br />
<!--T:154--><br />
* [[Image:FEM_MaterialReinforced.svg|32px]] [[FEM_MaterialReinforced|Reinforced material (concrete)]]: Lets you select reinforced materials consisting of a matrix and a reinforcement from the database.<br />
<br />
<!--T:83--><br />
* [[Image:FEM_MaterialEditor.svg|32px]] [[FEM_MaterialEditor|Material editor]]: Lets you open the material editor to edit materials.<br />
<br />
=== Element Geometry === <!--T:68--><br />
<br />
<!--T:84--><br />
* [[Image:FEM_ElementGeometry1D.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]: Used to define cross sections for beam elements.<br />
<br />
<!--T:85--><br />
* [[Image:FEM_ElementRotation1D.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]: Used to rotate cross sections of beam elements.<br />
<br />
<!--T:86--><br />
* [[Image:FEM_ElementGeometry2D.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]: Used to define shell element thickness.<br />
<br />
<!--T:87--><br />
* [[Image:FEM_ElementFluid1D.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]: Used to create fluid section element for pneumatic and hydraulic networks.<br />
<br />
=== Electromagnetic Constraints === <!--T:69--><br />
<br />
<!--T:176--><br />
* [[Image:FEM_CompEmConstraints.png|48px]] [[FEM_CompEmConstraints|Electromagnetic constraints]]: This is an icon menu in the FEM Constraints toolbar that holds the following constraints:<br />
<br />
<!--T:88--><br />
:* [[Image:FEM_ConstraintElectrostaticPotential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Constraint electrostatic potential]]: Used to define electrostatic potential.<br />
<br />
<!--T:177--><br />
:* [[Image:FEM_ConstraintCurrentDensity.svg|32px]] [[FEM_ConstraintCurrentDensity|Constraint current density]]: Used to define a current density. {{Version|1.0}}<br />
<br />
<!--T:178--><br />
:* [[Image:FEM_ConstraintMagnetization.svg|32px]] [[FEM_ConstraintMagnetization|Constraint magnetization]]: Used to define a magnetization. {{Version|1.0}}<br />
<br />
=== Fluid Constraints === <!--T:70--><br />
<br />
<!--T:89--><br />
* [[Image:FEM_ConstraintInitialFlowVelocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]: Used to define an initial flow velocity for a body (volume).<br />
<br />
<!--T:173--><br />
* [[Image:FEM_ConstraintInitialPressure.svg|32px]] [[FEM_ConstraintInitialPressure|Constraint initial pressure]]: Used to define an initial pressure for a body (volume). {{Version|1.0}}<br />
<br />
<!--T:91--><br />
* [[Image:FEM_ConstraintFlowVelocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Constraint flow velocity]]: Used to define a flow velocity as a boundary condition at an edge (2D) or face (3D).<br />
<br />
=== Geometrical Constraints === <!--T:160--><br />
<br />
<!--T:94--><br />
* [[Image:FEM_ConstraintPlaneRotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Constraint plane rotation]]: Used to define a plane rotation constraint on a planar face.<br />
<br />
<!--T:161--><br />
* [[Image:FEM_ConstraintSectionPrint.svg|32px]] [[FEM_ConstraintSectionPrint|Constraint section print]]: Used to print the predefined facial output variables (forces and moments) to the dat file. {{Version|0.19}}<br />
<br />
<!--T:96--><br />
* [[Image:FEM_ConstraintTransform.svg|32px]] [[FEM_ConstraintTransform|Constraint transform]]: Used to define a transform constraint on a face.<br />
<br />
=== Mechanical Constraints === <!--T:71--><br />
<br />
<!--T:92--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]: Used to define a fixed constraint on point/edge/face(s).<br />
<br />
<!--T:93--><br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]: Used to define a displacement constraint on point/edge/face(s).<br />
<br />
<!--T:95--><br />
* [[Image:FEM_ConstraintContact.svg|32px]] [[FEM_ConstraintContact|Constraint contact]]: Used to define a contact constraint between two faces.<br />
<br />
<!--T:162--><br />
* [[Image:FEM_ConstraintTie.svg|32px]] [[FEM_ConstraintTie|Constraint tie]]: Used to define a tie constraint ("bonded contact") between two faces. {{Version|0.19}}<br />
<br />
<!--T:169--><br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]: Used to define a spring. {{Version|0.20}}<br />
<br />
<!--T:97--><br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.<br />
<br />
<!--T:98--><br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]: Used to define a pressure constraint.<br />
<br />
<!--T:171--><br />
* [[Image:FEM_ConstraintCentrif.svg|32px]] [[FEM_ConstraintCentrif|Constraint centrif]]: Used to define a centrifugal body load constraint. {{Version|0.20}}<br />
<br />
<!--T:99--><br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]: Used to define a gravity acceleration acting on a model.<br />
<br />
=== Thermal Constraints === <!--T:72--><br />
<br />
<!--T:103--><br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]: Used to define the initial temperature of a body.<br />
<br />
<!--T:104--><br />
* [[Image:FEM_ConstraintHeatflux.svg|32px]] [[FEM_ConstraintHeatflux|Constraint heatflux]]: Used to define a heat flux constraint on a face(s).<br />
<br />
<!--T:105--><br />
* [[Image:FEM_ConstraintTemperature.svg|32px]] [[FEM_ConstraintTemperature|Constraint temperature]]: Used to define a temperature constraint on a point/edge/face(s).<br />
<br />
<!--T:106--><br />
* [[Image:FEM_ConstraintBodyHeatSource.svg|32px]] [[FEM_ConstraintBodyHeatSource|Constraint body heat source]]: Used to define an internally generated body heat.<br />
<br />
=== Constraints without solver === <!--T:163--><br />
<br />
<!--T:90--><br />
* [[Image:FEM_ConstraintFluidBoundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Fluid boundary condition]]: Used to define a fluid boundary condition.<br />
<br />
<!--T:100--><br />
* [[Image:FEM_ConstraintBearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint.<br />
<br />
<!--T:101--><br />
* [[Image:FEM_ConstraintGear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint.<br />
<br />
<!--T:102--><br />
* [[Image:FEM_ConstraintPulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint.<br />
<br />
=== Overwrite Constants === <!--T:164--><br />
<br />
<!--T:165--><br />
* [[Image:FEM_ConstantVacuumPermittivity.svg|32px]] [[FEM_ConstantVacuumPermittivity|Constant vacuum permittivity]]: Used to overwrite the [https://en.wikipedia.org/wiki/Vacuum_permittivity permittivity of vacuum] with a custom value. {{Version|0.19}}<br />
<br />
== Menu: Mesh == <!--T:73--><br />
<br />
<!--T:107--><br />
* [[Image:FEM_MeshNetgenFromShape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]: Generates a finite element mesh for a model using Netgen.<br />
<br />
<!--T:108--><br />
* [[Image:FEM_MeshGmshFromShape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by Gmsh]]: Generates a finite element mesh for a model using Gmsh.<br />
<br />
<!--T:109--><br />
* [[Image:FEM_MeshBoundaryLayer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]: Creates anisotropic meshes for accurate calculations near boundaries.<br />
<br />
<!--T:141--><br />
* [[Image:FEM_MeshRegion.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]: Creates a localized area(s) to mesh which highly optimizes analysis time.<br />
<br />
<!--T:110--><br />
* [[Image:FEM_MeshGroup.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.<br />
<br />
<!--T:111--><br />
* [[Image:FEM_CreateNodesSet.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh.<br />
<br />
<!--T:112--><br />
* [[Image:FEM_FemMesh2Mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.<br />
<br />
== Menu: Solve == <!--T:74--><br />
<br />
<!--T:113--><br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]: Creates a new solver for this analysis.<br />
<br />
<!--T:114--><br />
* [[Image:FEM_SolverCalculiX.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX (new framework)]]: Same as the original framework [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]] with extra checks.<br />
<br />
<!--T:115--><br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]: Creates the solver controller for Elmer.<br />
<br />
<!--T:170--><br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Solver Mystran]]: Creates the solver controller for the MYSTRAN solver. {{Version|0.20}}<br />
<br />
<!--T:116--><br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Solver Z88]]: Creates the solver controller for Z88.<br />
<br />
* [[Image:FEM_CompMechEquations.png|48px]] [[FEM_CompMechEquations|Mechanical equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:118--><br />
:* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform linear mechanical analyses.<br />
<br />
<!--T:185--><br />
:* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform nonlinear mechanical analyses (deformations). {{Version|1.0}}<br />
<br />
<!--T:179--><br />
* [[Image:FEM_CompEmEquations.png|48px]] [[FEM_CompEmEquations|Electromagnetic equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:119--><br />
:* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform electrostatic analyses.<br />
<br />
<!--T:166--><br />
:* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate the electric force on surfaces. {{Version|0.19}}<br />
<br />
<!--T:180--><br />
:* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics. {{Version|1.0}}<br />
<br />
<!--T:181--><br />
:* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics in 2D. {{Version|1.0}}<br />
<br />
<!--T:121--><br />
* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flow analyses.<br />
<br />
<!--T:120--><br />
* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flux analyses.<br />
<br />
<!--T:117--><br />
* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform heat transfer analyses.<br />
<br />
<!--T:122--><br />
* [[Image:FEM_SolverControl.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.<br />
<br />
<!--T:123--><br />
* [[Image:FEM_SolverRun.svg|32px]] [[FEM_SolverRun|Run solver calculations]]: Runs the selected solver of the active analysis.<br />
<br />
== Menu: Results == <!--T:75--><br />
<br />
<!--T:124--><br />
* [[Image:FEM_ResultsPurge.svg|32px]] [[FEM_ResultsPurge|Purge results]]: Deletes the results of the active analysis.<br />
<br />
<!--T:125--><br />
* [[Image:FEM_ResultShow.svg|24px]] [[FEM_ResultShow|Show result]]: Used to display the result of an analysis. This dialog is not available for the [[FEM_SolverElmer|Solver Elmer]] as this solver visualizes using the [[FEM_PostPipelineFromResult|Post pipeline from result]] object only.<br />
<br />
<!--T:126--><br />
* [[Image:FEM_PostApplyChanges.svg|32px]] [[FEM_PostApplyChanges|Apply changes to pipeline]]: Toggles if changes to pipelines and filters are applied immediately.<br />
<br />
<!--T:127--><br />
* [[Image:FEM_PostPipelineFromResult.svg|32px]] [[FEM_PostPipelineFromResult|Post pipeline from result]]: Used to add a new graphical representation of FEM analysis results (color scale and more display options).<br />
<br />
<!--T:128--><br />
* [[Image:FEM_PostFilterWarp.svg|32px]] [[FEM_PostFilterWarp|Warp filter]]: Used to visualize the scaled deformed shape of the model.<br />
<br />
<!--T:129--><br />
* [[Image:FEM_PostFilterClipScalar.svg|32px]] [[FEM_PostFilterClipScalar|Scalar clip filter]]: Used to clip a field with a specified scalar value.<br />
<br />
<!--T:130--><br />
* [[Image:FEM_PostFilterCutFunction.svg|32px]] [[FEM_PostFilterCutFunction|Function cut filter]]: Used to display the results on a sphere or a plane cutting through the model.<br />
<br />
<!--T:131--><br />
* [[Image:FEM_PostFilterClipRegion.svg|32px]] [[FEM_PostFilterClipRegion|Region clip filter]]: Used to clip a field with a sphere or a plane cutting through the model.<br />
<br />
<!--T:182--><br />
* [[Image:FEM_PostFilterContours.svg|32px]] [[FEM_PostFilterContours|Contours filter]]: Used to display iso-lines (for analyses in 2D) or iso-contours. {{Version|1.0}}<br />
<br />
<!--T:132--><br />
* [[Image:FEM_PostFilterDataAlongLine.svg|32px]] [[FEM_PostFilterDataAlongLine|Line clip filter]]: Used to plot the values of a field along a specified line.<br />
<br />
<!--T:133--><br />
* [[Image:FEM_PostFilterLinearizedStresses.svg|32px]] [[FEM_PostFilterLinearizedStresses|Stress linearization plot]]: Creates a stress linearization plot.<br />
<br />
<!--T:134--><br />
* [[Image:FEM_PostFilterDataAtPoint.svg|32px]] [[FEM_PostFilterDataAtPoint|Data at point clip filter]]: Used to display value of a selected field at a given point.<br />
<br />
<!--T:135--><br />
* [[Image:FEM_CompPostCreateFunctions.png|48px]] [[FEM_PostCreateFunctions|Filter functions]]: This is an icon menu in the FEM Results toolbar that holds the following commands:<br />
<br />
<!--T:174--><br />
:* [[Image:FEM_PostCreateFunctionPlane.svg|32px]] [[FEM_PostCreateFunctionPlane|Filter function plane]]: Cuts the result mesh with a plane.<br />
<br />
<!--T:175--><br />
:* [[Image:FEM_PostCreateFunctionSphere.svg|32px]] [[FEM_PostCreateFunctionSphere|Filter function sphere]]: Cuts the result mesh with a sphere.<br />
<br />
<!--T:183--><br />
:* [[Image:FEM_PostCreateFunctionCylinder.svg|32px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]]: Cuts the result mesh with a cylinder. {{Version|1.0}}<br />
<br />
<!--T:184--><br />
:* [[Image:FEM_PostCreateFunctionBox.svg|32px]] [[FEM_PostCreateFunctionBox|Filter function box]]: Cuts the result mesh with a box. {{Version|1.0}}<br />
<br />
== Menu: Utilities == <!--T:76--><br />
<br />
<!--T:136--><br />
* [[Image:FEM_ClippingPlaneAdd.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]: Adds a clipping plane for the whole model view.<br />
<br />
<!--T:137--><br />
* [[Image:FEM_ClippingPlaneRemoveAll.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]: Removes all existing [[FEM_ClippingPlaneAdd|clipping planes]].<br />
<br />
<!--T:158--><br />
* [[Image:FEM_Examples.svg|32px]] [[FEM_Examples|Open FEM examples]]: Open the GUI to access FEM examples.<br />
<br />
== Context Menu == <!--T:77--><br />
<br />
<!--T:138--><br />
* [[Image:FEM_MeshClear.svg|32px]] [[FEM_MeshClear|Clear FEM mesh]]: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.<br />
<br />
<!--T:139--><br />
* [[Image:FEM_MeshDisplayInfo.svg|32px]] [[FEM_MeshDisplayInfo|Display FEM mesh info]]: Displays basic statistics of existing mesh - number of nodes and elements of each type.<br />
<br />
== Preferences == <!--T:78--><br />
<br />
<!--T:140--><br />
* [[Image:Std_DlgPreferences.svg|32px]] [[FEM_Preferences|Preferences...]]: Preferences available in FEM Tools.<br />
<br />
== Information == <!--T:47--><br />
<br />
<!--T:147--><br />
The following pages explain different topics of the FEM Workbench.<br />
<br />
<!--T:148--><br />
[[FEM_Install|FEM Install]]: a detailed description on how to set up the external programs used in the workbench.<br />
<br />
<!--T:51--><br />
[[FEM_Mesh|FEM Mesh]]: further information on obtaining a mesh for finite element analysis.<br />
<br />
<!--T:62--><br />
[[FEM_Solver|FEM Solver]]: further information on the different solvers available in the workbench, and those that could be used in the future.<br />
<br />
<!--T:53--><br />
[[FEM_CalculiX|FEM CalculiX]]: further information on CalculiX, the default solver used in the workbench for structural analysis.<br />
<br />
<!--T:63--><br />
[[FEM_Concrete|FEM Concrete]]: interesting information on the topic of simulating concrete structures.<br />
<br />
== Tutorials == <!--T:172--><br />
<br />
<!--T:46--><br />
Tutorial 1: [[FEM_CalculiX_Cantilever_3D|FEM CalculiX Cantilever 3D]]; basic simply supported beam analysis.<br />
<br />
<!--T:54--><br />
Tutorial 2: [[FEM_tutorial|FEM Tutorial]]; simple tension analysis of a structure.<br />
<br />
<!--T:56--><br />
Tutorial 3: [[FEM_Tutorial_Python|FEM Tutorial Python]]; set up the cantilever example entirely through scripting in Python, including the mesh.<br />
<br />
<!--T:61--><br />
Tutorial 4: [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]; see the deformation of a block that is comprised of two materials.<br />
<br />
<!--T:155--><br />
Tutorial 5: [[Transient_FEM_analysis|Transient FEM analysis]]<br />
<br />
<!--T:157--><br />
Tutorial 6: [[Post-Processing_of_FEM_Results_with_Paraview|Post-Processing of FEM Results with Paraview]]<br />
<br />
<!--T:159--><br />
Tutorial 7: [[FEM_Example_Capacitance_Two_Balls|FEM Example Capacitance Two Balls]]; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.<br />
<br />
<!--T:55--><br />
Coupled thermal mechanical analysis tutorials by [https://opensimsa.github.io/training.html openSIM]<br />
<br />
<!--T:58--><br />
Video tutorial 1: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:59--><br />
Video tutorial 2: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:57--><br />
Many video tutorials: [https://www.youtube.com/channel/UCnvFCm2BbXOVI3ObfXcxXhw anisim Open Source Engineering Software] (in German)<br />
<br />
== Extending the FEM Workbench == <!--T:149--><br />
<br />
<!--T:150--><br />
The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.<br />
<br />
<!--T:151--><br />
The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the [[Power_users_hub|Power users hub]] and the [[Developer_hub|Developer hub]]. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the [https://forum.freecadweb.org/index.php FreeCAD forums], in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum].<br />
<br />
<!--T:60--><br />
The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.<br />
* [[Extend_FEM_Module|Extend FEM Module]]<br />
* [[Onboarding_FEM_Devs|Onboarding FEM Devs]] attempts to orient new devs on how to contribute to the FEM workbench.<br />
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]<br />
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]<br />
<br />
<!--T:152--><br />
A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.<br />
* [https://forum.freecadweb.org/viewtopic.php?t=17581 Early preview of ebook: Module developer' guide to FreeCAD source] forum thread.<br />
* [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide] github repository.<br />
<br />
== Extending the FEM Workbench documentation == <!--T:167--><br />
<br />
<!--T:168--><br />
* More information regarding extending or missing FEM documentation can be found in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20823 FEM documentation missing on the Wiki]<br />
<br />
<!--T:49--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Workbenches{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Release_notes_1.0&diff=1246005Release notes 1.02023-03-27T02:22:01Z<p>Uwestoehr: add usability improvements</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{VeryImportantMessage|FreeCAD 1.0 is under development, there is no expected released date yet.}}<br />
<br />
<!--T:2--><br />
{{Message|<br />
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;69438 Release notes for v1.0] forum thread.<br />
<br />
<!--T:3--><br />
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.<br />
}}<br />
{{Message|All images on this page must use the {{FileName|_relnotes_1.0}} suffix}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:4--><br />
'''FreeCAD 1.0''' was released on '''DD MM 2023''', get it from the [[Download|Download]] page. This page lists all new features and changes.<br />
<br />
<!--T:5--><br />
Older FreeCAD release notes can be found in the [[Feature_list#Release_notes|Feature list]].<br />
<br />
<!--T:6--><br />
Placeholder for an eye-catching image selected by the admins from the [https://forum.freecadweb.org/viewforum.php?f=24 user showcases forum].<br />
<br />
== General == <!--T:7--><br />
<br />
== User interface == <!--T:8--><br />
<br />
<!--T:82--><br />
{|cellpadding=5<br />
| [[File:Navi_Cube_relnotes_1.0.gif]]<br />
| The navigation cube corner faces are now hexagonal and bigger, making them easier to click.<br />
The font, font size and button color (the arrows around the cube) can now also be changed in the [[Preferences_Editor#Navigation|preferences]].</br><br />
[https://github.com/FreeCAD/FreeCAD/pull/7876 Pull request #7876], [https://github.com/FreeCAD/FreeCAD/pull/8266 Pull request #8266] and [https://github.com/FreeCAD/FreeCAD/pull/8646 Pull request #8646].<br />
|}<br />
<br />
<!--T:85--><br />
{|cellpadding=5<br />
| [[File:Part_SectionCut_example_relnotes_1.0.gif|384px]]</br>Persistent section cut of intersecting objects.</br>Click on the image to see the animation.<br />
| The [[Part_SectionCut|Section Cut]] tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues.<br>[https://github.com/FreeCAD/FreeCAD/pull/8252 Pull request #8252].<br />
|}<br />
<br />
<!--T:56--><br />
{| cellpadding=5<br />
| [[File:Measurement-Part_relnotes_1.0.png|384px]]<br />
| The display style of [[Part_Workbench#Measure|measurement]] results created using the [[Part_Workbench|Part]] or [[PartDesign_Workbench|PartDesign]] workbench can now be changed in the [[PartDesign_Preferences#Measure|preferences]].<br />
[https://github.com/FreeCAD/FreeCAD/pull/7148 Pull request #7148]<br />
|}<br />
<br />
<!--T:80--><br />
{| cellpadding=5<br />
| [[File:WbSelector_relnotes_1.0.png|384px]]<br />
| The workbench selector can now optionally be put in the menubar instead of the toolbar area.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7679 Pull request #7679]<br />
|}<br />
<br />
<br />
=== Further user interface improvements === <!--T:9--><br />
<br />
<!--T:57--><br />
* The button for [[Image:Std_UserEditModeDefault.svg|24px]] [[Std_UserEditMode|Edit Mode]] has been removed from the standard toolbar. It can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7570 Pull request #7570]<br />
* The buttons for [[Image:Std_Print.svg|24px]] [[Std_Print|Print]], [[Image:Std_Copy.svg|24px]] [[Std_Copy|Copy]], [[Image:Std_Paste.svg|24px]] [[Std_Paste|Paste]] and [[Image:Std_Cut.svg|24px]] [[Std_Cut|Cut]] have been removed from the standard toolbar. They can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7571 Pull request #7571] and [https://github.com/FreeCAD/FreeCAD/commit/ea9a04e commit ea9a04e]<br />
* Commands to [[Std_StoreWorkingView|store]] and [[Std_RecallWorkingView|recall]] a temporary working view have been added. [https://github.com/FreeCAD/FreeCAD/pull/7525 Pull request #7525]<br />
* Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by [[Draft_Line|Draft Line]]) are disabled if the widget doesn't have the focus and the [[Fine-tuning#Mouse_related|ComboBoxWheelEventFilter]] parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. [https://github.com/FreeCAD/FreeCAD/pull/7561 Pull request #7561]<br />
* It is now possible to set a default transparency for new [[Part_Module|Part]] or [[PartDesign_Workbench|PartDesign]] objects in the [[PartDesign_Preferences|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7103 Pull request #7103]<br />
* There is the new orbit style '''Free Turntable'''. It can either be enabled in the [[Preferences_Editor#Navigation|Preferences]] or by pressing the {{Button|[[File:NavigationCAD_dark.svg|16px]]}} button in the [[Status_bar|Status bar]] and then using the menu {{MenuCommand|Settings → Orbit}}). [https://github.com/FreeCAD/FreeCAD/pull/8048 Pull Request #8048]<br />
* The [[Std_SetAppearance|Std SetAppearance]] task panel now also has a button to set the Point Color property. [https://github.com/FreeCAD/FreeCAD/pull/7708 Pull request #7708]<br />
* A button has been added to switch the colors of the [[3D_view|3D view]] background gradient in the [[Preferences_Editor#Colors|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7155 Pull request #7155]<br />
* All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the [[Property_editor|property editor]] changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. [https://github.com/FreeCAD/FreeCAD/pull/7723 Pull request #7723]<br />
* The Output window has been renamed to Report view for uniformity with the UI. [https://github.com/FreeCAD/FreeCAD/pull/7739 Pull Request #7739]<br />
<br />
== Core system and API == <!--T:10--><br />
<br />
=== Core === <!--T:11--><br />
<br />
<!--T:89--><br />
* The function '''cbrt(x)''' for cubic roots was added for use in [[Expressions#Exponential_and_logarithmic_functions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8629 Pull request #8629]<br />
* Many new [[Property#All_property_types|Properties]] are available for scripting. [https://github.com/FreeCAD/FreeCAD/pull/6717 Pull request #6717]<br />
* Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in [[Expressions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8603 Pull request #8603].<br />
<br />
=== API === <!--T:12--><br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
==== New Python API ==== <!--T:13--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:58--><br />
* ''BSplineSurfacePy::scaleKnotsToBounds'': Scales the U and V knots lists to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7258 Pull request #7258] and [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
* ''BSplineCurvePy::scaleKnotsToBounds'': Scales the knots list to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
<br />
<!--T:14--><br />
* ''ShapeFix_EdgeConnectPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/4d4adb93 commit 4d4adb93]<br />
* ''ShapeFix_EdgePy'': Fixing invalid edge. [https://github.com/FreeCAD/FreeCAD/commit/4089cbfb commit 4089cbfb]<br />
* ''ShapeFix_FaceConnectPy'': Rebuilds connectivity between faces in shell. [https://github.com/FreeCAD/FreeCAD/commit/a0eb2e9d commit a0eb2e9d]<br />
* ''ShapeFix_FacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/b6cd635c commit b6cd635c]<br />
* ''ShapeFix_FixSmallFacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/4c2946c8 commit 4c2946c8]<br />
* ''ShapeFix_FixSmallSolidPy'': Fixing solids with small size. [https://github.com/FreeCAD/FreeCAD/commit/b70d8d37 commit b70d8d37]<br />
* ''ShapeFix_FreeBoundsPy'': Intended to output free bounds of the shape. [https://github.com/FreeCAD/FreeCAD/commit/1ee1aee1 commit 1ee1aee1]<br />
* ''ShapeFix_RootPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_ShapePy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/87db9dcc commit 87db9dcc]<br />
* ''ShapeFix_ShapeTolerancePy'': Modifies tolerances of sub-shapes (vertices, edges, faces). [https://github.com/FreeCAD/FreeCAD/commit/125d5b63 commit 125d5b63]<br />
* ''ShapeFix_ShellPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_SolidPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/8d568793 commit 8d568793]<br />
* ''ShapeFix_SplitCommonVertexPy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/4b44c54c commit 4b44c54c]<br />
* ''ShapeFix_SplitToolPy'': Tool for splitting and cutting edges. [https://github.com/FreeCAD/FreeCAD/commit/bbecc3f2 commit bbecc3f2]<br />
* ''ShapeFix_WireframePy'': Provides methods for fixing wireframe of shape. [https://github.com/FreeCAD/FreeCAD/commit/6843a461 commit 6843a461]<br />
* ''ShapeFix_WirePy'': Class for fixing operations on wires. [https://github.com/FreeCAD/FreeCAD/commit/94f6279a commit 94f6279a]<br />
* ''ShapeFix_WireVertexPy'': Fixing disconnected edges in the wire. [https://github.com/FreeCAD/FreeCAD/commit/8c6ffc99 commit 8c6ffc99]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
==== Removed Python API ==== <!--T:59--><br />
<br />
<!--T:60--><br />
* ''FreeCAD.EndingAdd'': replaced by ''FreeCAD.addImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
* ''FreeCAD.EndingGet'': replaced by ''FreeCAD.getImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
== Addon Manager == <!--T:16--><br />
<br />
== Arch Workbench == <!--T:17--><br />
<br />
<!--T:84--><br />
* Several edit mode issues have been fixed and the [[Tree_view|Tree view]] context menus for Arch objects have been improved. Objects that can be edited now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/8122 Pull request #8122]<br />
<br />
=== Further Arch improvements === <!--T:61--><br />
<br />
<!--T:62--><br />
* [[Arch_Profile|Arch Profile]] objects now support modification of the profile type after creation. [https://github.com/FreeCAD/FreeCAD/pull/7217 Pull request #7217]<br />
* The Terrain of an [[Arch_Site|Arch Site]] can now also be a solid. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* An [[Arch_Site|Arch Site]] no longer shows a phantom representation of the objects in its Group. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* [[Arch_SectionPlane|Arch SectionPlane]] objects now handle non-solid objects the same as solid objects. [https://github.com/FreeCAD/FreeCAD/pull/8688 Pull request #8688]<br />
<br />
== Draft Workbench == <!--T:18--><br />
<br />
<!--T:63--><br />
* The inaccuracy of [[Draft_Snap_Near|Draft Snap Near]] when snapping to curves was fixed. In addition, [[Draft_Snap_Perpendicular|Draft Snap Perpendicular]] can now also snap to faces and find multiple points. To snap to a vertex (e.g. a [[Draft_Point|Draft Point]]) [[Draft_Snap_Endpoint|Draft Snap Endpoint]] must now be used instead of [[Draft_Snap_Near|Draft Snap Near]]. [https://github.com/FreeCAD/FreeCAD/pull/7132 Pull request #7132]<br />
* To make working with [[Draft_Layer|layers]] easier their drag and drop behavior was modified. If you drop an object from a [[Std_Group|Std Group]], or a group-like object such as an [[Arch_BuildingPart|Arch BuildingPart]], on a layer, it is no longer removed from the group, and vice versa. This works without holding down the {{KEY|Ctrl}} key. [https://github.com/FreeCAD/FreeCAD/pull/7462 Pull request #7462]<br />
* The [[Draft_PointArray|Draft PointArray]] command now supports more point object types. Any object with a shape and vertices, as well as a [[Mesh_Workbench|mesh]] and a [[Points_Workbench|point cloud]] can be used. [https://github.com/FreeCAD/FreeCAD/pull/7597 Pull request #7597]<br />
* The [[Tree_view|Tree view]] context menus for Draft objects have been improved. Objects that can be edited with the [[Draft_Edit|Draft Edit]] command, or that have a dedicated edit solution, now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/7970 Pull request #7970]<br />
* The properties of Draft annotation objects have been unified. [[Draft_Text|Draft Text]], [[Draft_Dimension|Draft Dimension]] and [[Draft_Label|Draft Label]] objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. [https://github.com/FreeCAD/FreeCAD/issues/7861 Issue #7861] and [https://github.com/FreeCAD/FreeCAD/pull/8081 Pull request #8081]<br />
* Undo/Redo did not work properly for the Draft modification commands on Windows. [https://github.com/FreeCAD/FreeCAD/pull/8267 Pull request #8267]<br />
<br />
=== Further Draft improvements === <!--T:19--><br />
<br />
<!--T:73--><br />
* Several [[Draft_PathArray|Draft PathArray]] related issues have been fixed. [https://github.com/FreeCAD/FreeCAD/pull/7506 Pull request #7506] and [https://github.com/FreeCAD/FreeCAD/pull/7662 Pull request #7662]<br />
* The [[Draft_Edit|Draft Edit]] command has received several improvements. For [[Draft_Wire|wires]], [[Draft_BSpline|B-splines]] and [[Draft BezCurve|Bézier curves]] a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. [https://github.com/FreeCAD/FreeCAD/pull/7527 Pull request #7527] and [https://github.com/FreeCAD/FreeCAD/pull/7541 Pull request #7541]<br />
* The [[Draft_Snap|Draft Snap]] toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. [https://github.com/FreeCAD/FreeCAD/pull/7656 Pull request #7656]<br />
* In the task panel of the [[Draft_SetStyle|Draft SetStyle]] command the "Texts/dims" button has been replaced by the "Annotations" button. Pressing this button will process all annotations, including [[Draft_Label|Draft Labels]]. Several minor additional issues were also fixed. [https://github.com/FreeCAD/FreeCAD/pull/8190 Pull request #8190], [https://github.com/FreeCAD/FreeCAD/pull/8195 Pull request #8195] and [https://github.com/FreeCAD/FreeCAD/pull/8196 Pull request #8196]<br />
* Several [[Draft_AnnotationStyleEditor|Draft AnnotationStyleEditor]] bugs have been fixed and a separate Text color button has been added. [https://github.com/FreeCAD/FreeCAD/pull/8207 Pull request #8207]<br />
* Start and End Offset properties have been added to [[Draft_PathArray|Draft PathArray]] objects. [https://github.com/FreeCAD/FreeCAD/pull/8295 Pull request #8295]<br />
* A Count property has been added to the arrays that lacked this property: the non-Link versions of [[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]] and [[Draft_CircularArray|Draft CircularArray]]. [https://github.com/FreeCAD/FreeCAD/pull/8433 Pull request #8433]<br />
<br />
== FEM Workbench == <!--T:20--><br />
<br />
<!--T:86--><br />
{| cellpadding=5<br />
| [[File:FEM_PostFilterContours_relnotes_1.0.png|384px]]</br>Iso-contours, depicting the y-component of the absolute magnetic</br>flux density in and around a copper wire that is flown through by</br>electric current at a frequency of 100 kHz.</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| There is the new [[Image:FEM_PostFilterContours.svg|24px]] [[FEM_PostFilterContours|Contours filter]] filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8462 Pull request #8462]<br />
|}<br />
<br />
<!--T:64--><br />
{| cellpadding=5<br />
| [[File:FEM_Elmer-Multithread_relnotes_1.0.png|384px]]</br>Simulation result (of flowing water being heated) where 8 mesh regions</br>are visible (one for every CPU core used).<br />
| It is now possible to run the solver [[FEM_SolverElmer|Elmer]] using multiple CPU cores. For more info about the caveats, see [https://forum.freecadweb.org/viewtopic.php?p=610617#p610617 this forum post]<br />
[https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
|}<br />
<br />
<!--T:87--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic2D_relnotes_1.0.png|300px]]</br>Simulation result of the imaginary part of the current density in</br>a crucible that was heated electrically by a surrounding coil.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 16 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic2D.svg|24px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]] was added. With this it is possible to perform electromagnetic simulations in 2D.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8355 Pull request #8355]<br />
|}<br />
<br />
<!--T:88--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic_relnotes_1.0.png|384px]]</br>Simulation result of the imaginary part of the magnetic flux density in</br>and around a copper wire that is flown through by electric current at</br>a frequency of 100 kHz.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic.svg|24px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]] was added. With this it is possible to perform electromagnetic simulations.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8380 Pull request #8380]<br />
|}<br />
<br />
<!--T:95--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationDeformation_relnotes_1.0.png|384px]]</br>Simulation result of an iron U-wire that is deformed</br>by pressing the ends of the U together.</br>For more info about this model, see section 8 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]] was added. With this it is possible to perform nonlinear elasticity analyses (deformation).<br />
[https://github.com/FreeCAD/FreeCAD/pull/8981 Pull request #8981]<br />
|}<br />
<br />
=== Further FEM improvements === <!--T:21--><br />
<br />
<!--T:65--><br />
* When performing analyses using the [[FEM_SolverCalculixCxxtools|CalculiX solver]], there is now also a [[FEM_PostPipelineFromResult|results pipeline]] created to visualize the results. [https://github.com/FreeCAD/FreeCAD/pull/8525 Pull request #8525] and [https://github.com/FreeCAD/FreeCAD/pull/8903 Pull request #8903]<br />
* The [[Image:FEM_ConstraintInitialPressure.svg|24px]] [[FEM_ConstraintInitialPressure|initial pressure constraint]] was added to set the initial internal pressure of fluids. [https://github.com/FreeCAD/FreeCAD/pull/7364 Pull request #7364]<br />
* The [[Image:FEM_ConstraintCurrentDensity.svg|24px]] [[FEM_ConstraintCurrentDensity|current density constraint]] was added to set current densities for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8348 Pull request #8348]<br />
* The [[Image:FEM_ConstraintMagnetization.svg|24px]] [[FEM_ConstraintMagnetization|magnetization constraint]] was added to set magnetizations for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8393 Pull request #8393]<br />
* The [[Image:FEM_ConstraintFlowVelocity.svg|24px]] [[FEM_ConstraintFlowVelocity|flow velocity constraint]] and [[Image:FEM_ConstraintInitialFlowVelocity.svg|24px]] [[FEM_ConstraintInitialFlowVelocity|initial flow velocity constraint]] were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). [https://github.com/FreeCAD/FreeCAD/pull/8963 Pull request #8963] and [https://github.com/FreeCAD/FreeCAD/pull/8964 Pull request #8964]</br>'''Note:''' This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.</br>'''Also note:''' until FreeCAD 0.20.3 the results of the flow solver were wrong (fluid density and viscosity were treated a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct.<br />
* It is now possible to define in the [[Image:FEM_ConstraintDisplacement.svg|24px]] [[FEM_ConstraintDisplacement|displacement constraint]] displacements as equations (displacement according to the current solver time).<br />
* The [[Image:FEM_ConstraintBodyHeatSource.svg|24px]] [[FEM_ConstraintBodyHeatSource|body heat source constraint]] has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. [https://github.com/FreeCAD/FreeCAD/pull/7367 Pull request #7367]<br />
* The [[Image:FEM_ConstraintSpring.svg|24px]] [[FEM_ConstraintSpring|spring constraint]] was not used by any solver. Now it can be used by the [[FEM_SolverElmer|Elmer]] solver via the equations [[FEM_EquationDeformation|Deformation]] and [[FEM_EquationElasticity|Elasticity]]. [https://github.com/FreeCAD/FreeCAD/pull/9005 Pull request #9005]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionCylinder.svg|24px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8735 Pull request #8735]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionBox.svg|24px]] [[FEM_PostCreateFunctionBox|Filter function box]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8825 Pull request #8825]<br />
* It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an [[FEM_SolverElmer|Elmer]] simulation, when more than one CPU core is used for calculations. [https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
* Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. [https://github.com/FreeCAD/FreeCAD/pull/7467 Pull request #7467]<br />
* [[Image:FEM_FemMesh2Mesh.svg|24px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]] has the new parameter ''scale'' to define the scale of deformed mesh using Python. [https://forum.freecadweb.org/viewtopic.php?f=18&t=71936 Forum thread] and [https://github.com/FreeCAD/FreeCAD/pull/7715 Pull request #7715]<br />
* The [[FEM_Preferences|preferences]] have a new option to define what solver should automatically be added when creating a new analysis.<br />
* Usability improvements:<br />
** When loading a FreeCAD file containing an analysis and you are already in the FEM workbench, the analysis gets automatically activated (you have immediate access to all FEM toolbar buttons).<br />
** The toolbar only has buttons for solvers installed on your system. Unavailable solvers are no longer having a toolbar button.<br />
* New example files for the following equations are available via the [[FEM_Examples|FEM Examples]]: [[FEM_EquationDeformation|Deformation]], [[FEM_EquationFlow|Flow]], [[FEM_EquationFlux|Flux]], [[FEM_EquationHeat|Heat]], [[FEM_EquationMagnetodynamic|Magnetodynamic]] and [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D]]. Pull requests [https://github.com/FreeCAD/FreeCAD/pull/8550 #8550], [https://github.com/FreeCAD/FreeCAD/pull/8569 #8569], [https://github.com/FreeCAD/FreeCAD/pull/8579 #8579], [https://github.com/FreeCAD/FreeCAD/pull/8597 #8597], [https://github.com/FreeCAD/FreeCAD/pull/8630 #8630] and [https://github.com/FreeCAD/FreeCAD/pull/9004 #9004].<br />
* New material card for carbon dioxide and a titanium alloy. [https://github.com/FreeCAD/FreeCAD/pull/8332 Pull request #8332] and [https://github.com/FreeCAD/FreeCAD/pull/8636 Pull request #8636]<br />
<br />
== Export == <!--T:22--> <br />
<br />
== Mesh == <!--T:23--><br />
<br />
=== Further Mesh improvements === <!--T:24--><br />
<br />
<!--T:75--><br />
* Support to add transparencies to a mesh. [https://forum.freecadweb.org/viewtopic.php?f=22&t=72531 Forum thread] and [https://github.com/FreeCAD/FreeCAD/commit/f88305e Commit f88305e]<br />
<br />
== OpenSCAD Workbench == <!--T:25--><br />
<br />
== Part Workbench == <!--T:26--><br />
<br />
=== Further Part improvements === <!--T:27--><br />
<br />
<!--T:94--><br />
* The [[Part_PointsFromMesh|Part PointsFromMesh]] command has been extended to accept any geometric object as input. [https://github.com/FreeCAD/FreeCAD/pull/8730 Pull request #8730]<br />
<br />
== PartDesign Workbench == <!--T:28--><br />
<br />
<!--T:76--><br />
{| cellpadding=5<br />
| [[Image:PD_Counterdrill_relnotes_1.0.png|384px]]</br>A counterdrill hole.<br />
| The [[PartDesign_Hole|Hole]] dialog supports the screw head type ''Counterdrill''.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7562 Pull request #7562]<br />
|-<br />
|}<br />
<br />
=== Further PartDesign improvements === <!--T:29--><br />
<br />
<!--T:77--><br />
* In the [[PartDesign_Hole|Hole]] dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. [https://github.com/FreeCAD/FreeCAD/pull/7654 Pull request #7654]<br />
* In the [[PartDesign_AdditiveLoft|Additive Loft]] and [[PartDesign_SubtractiveLoft|Subtractive Loft]] dialogs, the previously non-functional option '''Closed''' does now create a closed loft (like a ring). [https://github.com/FreeCAD/FreeCAD/pull/8748 Pull request #8748]<br />
* The [[Sketcher_ValidateSketch|Validate sketch]] command was added to Helper toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The unusable [[Sketcher_LeaveSketch|Leave sketch]] and [[Sketcher_ViewSketch|View sketch]] commands were removed from the menu. The [[Sketcher_EditSketch|Edit sketch]], [[Sketcher_MergeSketches|Merge sketches]] and [[Sketcher_MirrorSketch|Mirror sketch]] commands were added to the menu. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create [https://en.wikipedia.org/wiki/Spline_(mechanical) involute splines] too. [https://github.com/FreeCAD/FreeCAD/pull/8184 Pull request #8184]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] now offers profile shifting. [https://github.com/FreeCAD/FreeCAD/issues/5618 Issue #5618] and [https://github.com/FreeCAD/FreeCAD/pull/8934 Pull request #8934]<br />
<br />
== Path Workbench == <!--T:30--><br />
<br />
<!--T:31--><br />
* Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. [https://github.com/FreeCAD/FreeCAD/pull/6637 Pull request #6637]<br />
<br />
<!--T:32--><br />
* Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, WCS, or operation label. This is in addition to the other existing substitution strings like date, job name, etc.<br />
<br />
<!--T:66--><br />
* Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.[https://github.com/FreeCAD/FreeCAD/pull/7469 Pull request #7469]<br />
<br />
== Plot module == <!--T:33--><br />
<br />
== Sketcher Workbench == <!--T:34--><br />
<br />
<!--T:81--><br />
{| cellpadding=5<br />
| [[File:Constrain B-spline knots_relnotes_1.0.gif|384px]]</br>Dragging of B-spline knots.</br>Click on the image to see the animation.<br />
| B-spline knots can now be dragged around and constrained like any other sketch point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7484 Pull request #7484]<br />
|-<br />
|}<br />
<br />
<!--T:67--><br />
{| cellpadding=5<br />
| [[File:sketcher-move-piece_relnotes_1.0.gif|384px]]</br>Dragging of a B-spline.</br>Click on the image if the animation does not start.<br />
| Dragging a B-spline now only moves the part between knots.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7110 Pull request #7110]<br />
|-<br />
|}<br />
<br />
<!--T:83--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Join_Curves_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The [[Sketcher_JoinCurves|Join curves]] tool has been added. It can combine multiple curves into a single B-spline.<br />
[https://github.com/FreeCAD/FreeCAD/pull/6507 Pull request #6507]<br />
|-<br />
|}<br />
<br />
<!--T:72--><br />
{| cellpadding=5<br />
| [[File:Sketcher_BackEdit_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7417 Pull request #7417]<br />
|-<br />
|}<br />
<br />
<!--T:90--><br />
{| cellpadding=5<br />
| [[File:Grid rework.png|384px]]<br />
| The Sketcher grid has been reworked. The [[Sketcher_Grid|Grid]] tool has been added. Automatic rescalling of grid option has been added.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:91--><br />
{| cellpadding=5<br />
| [[File:Constraint widget.png|384px]]<br />
| The Sketcher Constraint widget has been reworked to simplify the UI.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7566 Pull request #7566]<br />
|-<br />
|}<br />
<br />
<!--T:78--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Element_Widget_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7567 Pull request #7567]<br />
|-<br />
|}<br />
<br />
<!--T:92--><br />
{| cellpadding=5<br />
| [[File:Sketcher grid relnotes 1.0.gif.gif|384px]]<br />
| A feature to automatically resize the grid according to the zoom level and other improvements were introduced.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:93--><br />
{| cellpadding=5<br />
| [[File:Sketcher layers relnotes 1.0.gif|384px]]<br />
| Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road.<br />
This PR also removes the rendering order options (no longer needed) and the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8716 Pull request #8716]<br />
|-<br />
|}<br />
<br />
=== Further Sketcher improvements === <!--T:35--><br />
<br />
<!--T:74--><br />
* The toolbar button for [[Sketcher_ConstrainSnellsLaw|Constrain refraction (Snell's law)]] has been removed. [https://github.com/FreeCAD/FreeCAD/commit/ef62fc3 Commit ef62fc3]<br />
* The [[Sketcher_Workbench#Dimensional_constraints|Dimensional Constraints]] and Quantity Spin Boxes now support the same math as [[Expressions|Expressions]] (Evaluated in place). [https://github.com/FreeCAD/FreeCAD/pull/7124 Pull Request #7124]<br />
* The toolbar buttons for [[Sketcher_SelectRedundantConstraints|Select redundant constraints]] and [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]] have been removed. [https://github.com/FreeCAD/FreeCAD/pull/7568 Pull request #7568]<br />
* The toolbar button for [[Sketcher_StopOperation|Stop operation]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7569 Pull request #7569]<br />
* The 'Edit controls' section in the Sketcher dialog has been made optional. [https://github.com/FreeCAD/FreeCAD/pull/7572 Pull request #7572]<br />
* The toolbar button for [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7603 Pull request #7603]<br />
* The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. [https://github.com/FreeCAD/FreeCAD/pull/7655 Pull request #7655]<br />
* [[Sketcher_ConstrainCoincident|Coincident constraint]] can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. [https://github.com/FreeCAD/FreeCAD/pull/7703 Pull request #7703]<br />
* [[Sketcher_CarbonCopy|Carbon copy]] if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. [https://github.com/FreeCAD/FreeCAD/pull/7688 Pull request #7688]<br />
* The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. [https://github.com/FreeCAD/FreeCAD/pull/8864 Pull request #8864]<br />
* [[Sketcher_Split|Split]] now supports more curves (ellipses, parabolas, hyperbolas and B-splines). [https://github.com/FreeCAD/FreeCAD/pull/6971 Pull request #6971]<br />
<br />
== Spreadsheet Workbench == <!--T:36--><br />
<br />
=== Further Spreadsheet improvements === <!--T:37--><br />
<br />
== TechDraw Workbench == <!--T:38--><br />
<br />
<!--T:68--><br />
{| cellpadding=5<br />
| [[File:TechDraw_SurfaceFinishExample_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_SurfaceFinishSymbol|SurfaceFinishSymbol]] tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing [[TechDraw_LeaderLine|LeaderLine]] tool can be used to properly refer oriented symbols to the edges of an object.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7227 Pull request #7227]<br />
|-<br />
| [[File:TechDraw_ComplexSection_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_ComplexSection|ComplexSection]] tool was added to allow for the creation of half, offset and aligned sections.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
|-<br />
|}<br />
<br />
=== Further TechDraw improvements === <!--T:39--><br />
<br />
<!--T:69--><br />
* Navigation modes have been updated to match those used in the 3D view. [https://github.com/FreeCAD/FreeCAD/pull/7081 Pull request #7081] and [https://github.com/FreeCAD/FreeCAD/pull/7107 Pull request #7107]<br />
* Bitmap hatching was fixed. [https://github.com/FreeCAD/FreeCAD/issues/6582 Issue #6582] and [https://github.com/FreeCAD/FreeCAD/pull/7121 Pull request #7121]<br />
* Support for adjustable gaps for extension lines of [[TechDraw_Preferences#Dimensions|dimensions]] was added. [https://github.com/FreeCAD/FreeCAD/pull/7133 Pull request #7133]<br />
* Multithreading was introduced for hidden line removal and face finding. [https://github.com/FreeCAD/FreeCAD/pull/7377 Pull request #7377]<br />
* The face detection algorithm was improved. [https://github.com/FreeCAD/FreeCAD/pull/7448 Pull request #7448]<br />
* The [[TechDraw_PrintAll|PrintAll]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_StackGroup|Four tools]] to control the stacking order of views were added. [https://github.com/FreeCAD/FreeCAD/issues/6012 Issue #6012] and [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_ActiveView|ActiveView]] now creates a screen capture instead of an SVG image. [https://github.com/FreeCAD/FreeCAD/pull/7471 Pull request #7471]<br />
* All Latin script templates have been converted to "plain svg". [https://github.com/FreeCAD/FreeCAD/pull/7472 Pull request #7472]<br />
* A preview was added to the task panel of the [[TechDraw_SectionView|SectionView]] tool. [https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
* Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.<br />
* The [[TechDraw_HoleShaftFit|HoleShaftFit]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8455 Pull request #8455]<br />
* The [[TechDraw_AxoLengthDimension|AxoLengthDimension]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8359 Pull request #8359]<br />
* 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
* The [[TechDraw_DimensionRepair|DimensionRepair]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
<br />
== Web == <!--T:40--><br />
<br />
== External workbenches == <!--T:41--><br />
<br />
=== A2plus === <!--T:42--><br />
<br />
=== Assembly3 === <!--T:43--><br />
<br />
=== Assembly4 === <!--T:44--><br />
<br />
=== FCGear === <!--T:45--><br />
<br />
=== Ship === <!--T:46--><br />
<br />
== Compilation == <!--T:47--><br />
<br />
<!--T:48--><br />
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.8 according to the [[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 development goals]].<br />
<br />
<!--T:49--><br />
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|macOS]].<br />
<br />
<!--T:50--><br />
The supported operating systems are:<br />
* Windows 7, 8, 10 and 11<br />
* Linux Ubuntu Focal Fossa (20.04) and newer<br />
* macOS: 10.12 Sierra or newer<br />
<br />
== Known Limitations == <!--T:51--><br />
<br />
===32bit Windows=== <!--T:52--><br />
<br />
<!--T:53--><br />
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.<br />
<br />
===Remote Desktop under Windows=== <!--T:54--><br />
<br />
<!--T:55--><br />
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver.<br />
Only if this doesn't help:<br />
* Download [https://downloads.fdossena.com/geth.php?r=mesa64-latest this] OpenGL library for 64bit Windows and extract it.<br />
* Rename the DLL file to ''opengl32sw.dll'' and copy it to the ''bin'' subfolder of FreeCAD's installation folder (overwrite the existing DLL there).<br />
<br />
===macOS: Start Workbench shows blank page === <!--T:70--><br />
<br />
<!--T:71--><br />
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|FreeCAD-1.0 → Preferences → Display}}.<br />
<br />
<br />
</translate><br />
[[Category:News{{#translation:}}]]<br />
[[Category:Documentation{{#translation:}}]]<br />
[[Category:Releases{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Release_notes_1.0&diff=1246004Release notes 1.02023-03-27T02:17:43Z<p>Uwestoehr: add new option</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{VeryImportantMessage|FreeCAD 1.0 is under development, there is no expected released date yet.}}<br />
<br />
<!--T:2--><br />
{{Message|<br />
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;69438 Release notes for v1.0] forum thread.<br />
<br />
<!--T:3--><br />
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.<br />
}}<br />
{{Message|All images on this page must use the {{FileName|_relnotes_1.0}} suffix}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:4--><br />
'''FreeCAD 1.0''' was released on '''DD MM 2023''', get it from the [[Download|Download]] page. This page lists all new features and changes.<br />
<br />
<!--T:5--><br />
Older FreeCAD release notes can be found in the [[Feature_list#Release_notes|Feature list]].<br />
<br />
<!--T:6--><br />
Placeholder for an eye-catching image selected by the admins from the [https://forum.freecadweb.org/viewforum.php?f=24 user showcases forum].<br />
<br />
== General == <!--T:7--><br />
<br />
== User interface == <!--T:8--><br />
<br />
<!--T:82--><br />
{|cellpadding=5<br />
| [[File:Navi_Cube_relnotes_1.0.gif]]<br />
| The navigation cube corner faces are now hexagonal and bigger, making them easier to click.<br />
The font, font size and button color (the arrows around the cube) can now also be changed in the [[Preferences_Editor#Navigation|preferences]].</br><br />
[https://github.com/FreeCAD/FreeCAD/pull/7876 Pull request #7876], [https://github.com/FreeCAD/FreeCAD/pull/8266 Pull request #8266] and [https://github.com/FreeCAD/FreeCAD/pull/8646 Pull request #8646].<br />
|}<br />
<br />
<!--T:85--><br />
{|cellpadding=5<br />
| [[File:Part_SectionCut_example_relnotes_1.0.gif|384px]]</br>Persistent section cut of intersecting objects.</br>Click on the image to see the animation.<br />
| The [[Part_SectionCut|Section Cut]] tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues.<br>[https://github.com/FreeCAD/FreeCAD/pull/8252 Pull request #8252].<br />
|}<br />
<br />
<!--T:56--><br />
{| cellpadding=5<br />
| [[File:Measurement-Part_relnotes_1.0.png|384px]]<br />
| The display style of [[Part_Workbench#Measure|measurement]] results created using the [[Part_Workbench|Part]] or [[PartDesign_Workbench|PartDesign]] workbench can now be changed in the [[PartDesign_Preferences#Measure|preferences]].<br />
[https://github.com/FreeCAD/FreeCAD/pull/7148 Pull request #7148]<br />
|}<br />
<br />
<!--T:80--><br />
{| cellpadding=5<br />
| [[File:WbSelector_relnotes_1.0.png|384px]]<br />
| The workbench selector can now optionally be put in the menubar instead of the toolbar area.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7679 Pull request #7679]<br />
|}<br />
<br />
<br />
=== Further user interface improvements === <!--T:9--><br />
<br />
<!--T:57--><br />
* The button for [[Image:Std_UserEditModeDefault.svg|24px]] [[Std_UserEditMode|Edit Mode]] has been removed from the standard toolbar. It can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7570 Pull request #7570]<br />
* The buttons for [[Image:Std_Print.svg|24px]] [[Std_Print|Print]], [[Image:Std_Copy.svg|24px]] [[Std_Copy|Copy]], [[Image:Std_Paste.svg|24px]] [[Std_Paste|Paste]] and [[Image:Std_Cut.svg|24px]] [[Std_Cut|Cut]] have been removed from the standard toolbar. They can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7571 Pull request #7571] and [https://github.com/FreeCAD/FreeCAD/commit/ea9a04e commit ea9a04e]<br />
* Commands to [[Std_StoreWorkingView|store]] and [[Std_RecallWorkingView|recall]] a temporary working view have been added. [https://github.com/FreeCAD/FreeCAD/pull/7525 Pull request #7525]<br />
* Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by [[Draft_Line|Draft Line]]) are disabled if the widget doesn't have the focus and the [[Fine-tuning#Mouse_related|ComboBoxWheelEventFilter]] parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. [https://github.com/FreeCAD/FreeCAD/pull/7561 Pull request #7561]<br />
* It is now possible to set a default transparency for new [[Part_Module|Part]] or [[PartDesign_Workbench|PartDesign]] objects in the [[PartDesign_Preferences|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7103 Pull request #7103]<br />
* There is the new orbit style '''Free Turntable'''. It can either be enabled in the [[Preferences_Editor#Navigation|Preferences]] or by pressing the {{Button|[[File:NavigationCAD_dark.svg|16px]]}} button in the [[Status_bar|Status bar]] and then using the menu {{MenuCommand|Settings → Orbit}}). [https://github.com/FreeCAD/FreeCAD/pull/8048 Pull Request #8048]<br />
* The [[Std_SetAppearance|Std SetAppearance]] task panel now also has a button to set the Point Color property. [https://github.com/FreeCAD/FreeCAD/pull/7708 Pull request #7708]<br />
* A button has been added to switch the colors of the [[3D_view|3D view]] background gradient in the [[Preferences_Editor#Colors|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7155 Pull request #7155]<br />
* All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the [[Property_editor|property editor]] changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. [https://github.com/FreeCAD/FreeCAD/pull/7723 Pull request #7723]<br />
* The Output window has been renamed to Report view for uniformity with the UI. [https://github.com/FreeCAD/FreeCAD/pull/7739 Pull Request #7739]<br />
<br />
== Core system and API == <!--T:10--><br />
<br />
=== Core === <!--T:11--><br />
<br />
<!--T:89--><br />
* The function '''cbrt(x)''' for cubic roots was added for use in [[Expressions#Exponential_and_logarithmic_functions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8629 Pull request #8629]<br />
* Many new [[Property#All_property_types|Properties]] are available for scripting. [https://github.com/FreeCAD/FreeCAD/pull/6717 Pull request #6717]<br />
* Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in [[Expressions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8603 Pull request #8603].<br />
<br />
=== API === <!--T:12--><br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
==== New Python API ==== <!--T:13--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:58--><br />
* ''BSplineSurfacePy::scaleKnotsToBounds'': Scales the U and V knots lists to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7258 Pull request #7258] and [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
* ''BSplineCurvePy::scaleKnotsToBounds'': Scales the knots list to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
<br />
<!--T:14--><br />
* ''ShapeFix_EdgeConnectPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/4d4adb93 commit 4d4adb93]<br />
* ''ShapeFix_EdgePy'': Fixing invalid edge. [https://github.com/FreeCAD/FreeCAD/commit/4089cbfb commit 4089cbfb]<br />
* ''ShapeFix_FaceConnectPy'': Rebuilds connectivity between faces in shell. [https://github.com/FreeCAD/FreeCAD/commit/a0eb2e9d commit a0eb2e9d]<br />
* ''ShapeFix_FacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/b6cd635c commit b6cd635c]<br />
* ''ShapeFix_FixSmallFacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/4c2946c8 commit 4c2946c8]<br />
* ''ShapeFix_FixSmallSolidPy'': Fixing solids with small size. [https://github.com/FreeCAD/FreeCAD/commit/b70d8d37 commit b70d8d37]<br />
* ''ShapeFix_FreeBoundsPy'': Intended to output free bounds of the shape. [https://github.com/FreeCAD/FreeCAD/commit/1ee1aee1 commit 1ee1aee1]<br />
* ''ShapeFix_RootPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_ShapePy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/87db9dcc commit 87db9dcc]<br />
* ''ShapeFix_ShapeTolerancePy'': Modifies tolerances of sub-shapes (vertices, edges, faces). [https://github.com/FreeCAD/FreeCAD/commit/125d5b63 commit 125d5b63]<br />
* ''ShapeFix_ShellPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_SolidPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/8d568793 commit 8d568793]<br />
* ''ShapeFix_SplitCommonVertexPy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/4b44c54c commit 4b44c54c]<br />
* ''ShapeFix_SplitToolPy'': Tool for splitting and cutting edges. [https://github.com/FreeCAD/FreeCAD/commit/bbecc3f2 commit bbecc3f2]<br />
* ''ShapeFix_WireframePy'': Provides methods for fixing wireframe of shape. [https://github.com/FreeCAD/FreeCAD/commit/6843a461 commit 6843a461]<br />
* ''ShapeFix_WirePy'': Class for fixing operations on wires. [https://github.com/FreeCAD/FreeCAD/commit/94f6279a commit 94f6279a]<br />
* ''ShapeFix_WireVertexPy'': Fixing disconnected edges in the wire. [https://github.com/FreeCAD/FreeCAD/commit/8c6ffc99 commit 8c6ffc99]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
==== Removed Python API ==== <!--T:59--><br />
<br />
<!--T:60--><br />
* ''FreeCAD.EndingAdd'': replaced by ''FreeCAD.addImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
* ''FreeCAD.EndingGet'': replaced by ''FreeCAD.getImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
== Addon Manager == <!--T:16--><br />
<br />
== Arch Workbench == <!--T:17--><br />
<br />
<!--T:84--><br />
* Several edit mode issues have been fixed and the [[Tree_view|Tree view]] context menus for Arch objects have been improved. Objects that can be edited now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/8122 Pull request #8122]<br />
<br />
=== Further Arch improvements === <!--T:61--><br />
<br />
<!--T:62--><br />
* [[Arch_Profile|Arch Profile]] objects now support modification of the profile type after creation. [https://github.com/FreeCAD/FreeCAD/pull/7217 Pull request #7217]<br />
* The Terrain of an [[Arch_Site|Arch Site]] can now also be a solid. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* An [[Arch_Site|Arch Site]] no longer shows a phantom representation of the objects in its Group. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* [[Arch_SectionPlane|Arch SectionPlane]] objects now handle non-solid objects the same as solid objects. [https://github.com/FreeCAD/FreeCAD/pull/8688 Pull request #8688]<br />
<br />
== Draft Workbench == <!--T:18--><br />
<br />
<!--T:63--><br />
* The inaccuracy of [[Draft_Snap_Near|Draft Snap Near]] when snapping to curves was fixed. In addition, [[Draft_Snap_Perpendicular|Draft Snap Perpendicular]] can now also snap to faces and find multiple points. To snap to a vertex (e.g. a [[Draft_Point|Draft Point]]) [[Draft_Snap_Endpoint|Draft Snap Endpoint]] must now be used instead of [[Draft_Snap_Near|Draft Snap Near]]. [https://github.com/FreeCAD/FreeCAD/pull/7132 Pull request #7132]<br />
* To make working with [[Draft_Layer|layers]] easier their drag and drop behavior was modified. If you drop an object from a [[Std_Group|Std Group]], or a group-like object such as an [[Arch_BuildingPart|Arch BuildingPart]], on a layer, it is no longer removed from the group, and vice versa. This works without holding down the {{KEY|Ctrl}} key. [https://github.com/FreeCAD/FreeCAD/pull/7462 Pull request #7462]<br />
* The [[Draft_PointArray|Draft PointArray]] command now supports more point object types. Any object with a shape and vertices, as well as a [[Mesh_Workbench|mesh]] and a [[Points_Workbench|point cloud]] can be used. [https://github.com/FreeCAD/FreeCAD/pull/7597 Pull request #7597]<br />
* The [[Tree_view|Tree view]] context menus for Draft objects have been improved. Objects that can be edited with the [[Draft_Edit|Draft Edit]] command, or that have a dedicated edit solution, now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/7970 Pull request #7970]<br />
* The properties of Draft annotation objects have been unified. [[Draft_Text|Draft Text]], [[Draft_Dimension|Draft Dimension]] and [[Draft_Label|Draft Label]] objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. [https://github.com/FreeCAD/FreeCAD/issues/7861 Issue #7861] and [https://github.com/FreeCAD/FreeCAD/pull/8081 Pull request #8081]<br />
* Undo/Redo did not work properly for the Draft modification commands on Windows. [https://github.com/FreeCAD/FreeCAD/pull/8267 Pull request #8267]<br />
<br />
=== Further Draft improvements === <!--T:19--><br />
<br />
<!--T:73--><br />
* Several [[Draft_PathArray|Draft PathArray]] related issues have been fixed. [https://github.com/FreeCAD/FreeCAD/pull/7506 Pull request #7506] and [https://github.com/FreeCAD/FreeCAD/pull/7662 Pull request #7662]<br />
* The [[Draft_Edit|Draft Edit]] command has received several improvements. For [[Draft_Wire|wires]], [[Draft_BSpline|B-splines]] and [[Draft BezCurve|Bézier curves]] a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. [https://github.com/FreeCAD/FreeCAD/pull/7527 Pull request #7527] and [https://github.com/FreeCAD/FreeCAD/pull/7541 Pull request #7541]<br />
* The [[Draft_Snap|Draft Snap]] toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. [https://github.com/FreeCAD/FreeCAD/pull/7656 Pull request #7656]<br />
* In the task panel of the [[Draft_SetStyle|Draft SetStyle]] command the "Texts/dims" button has been replaced by the "Annotations" button. Pressing this button will process all annotations, including [[Draft_Label|Draft Labels]]. Several minor additional issues were also fixed. [https://github.com/FreeCAD/FreeCAD/pull/8190 Pull request #8190], [https://github.com/FreeCAD/FreeCAD/pull/8195 Pull request #8195] and [https://github.com/FreeCAD/FreeCAD/pull/8196 Pull request #8196]<br />
* Several [[Draft_AnnotationStyleEditor|Draft AnnotationStyleEditor]] bugs have been fixed and a separate Text color button has been added. [https://github.com/FreeCAD/FreeCAD/pull/8207 Pull request #8207]<br />
* Start and End Offset properties have been added to [[Draft_PathArray|Draft PathArray]] objects. [https://github.com/FreeCAD/FreeCAD/pull/8295 Pull request #8295]<br />
* A Count property has been added to the arrays that lacked this property: the non-Link versions of [[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]] and [[Draft_CircularArray|Draft CircularArray]]. [https://github.com/FreeCAD/FreeCAD/pull/8433 Pull request #8433]<br />
<br />
== FEM Workbench == <!--T:20--><br />
<br />
<!--T:86--><br />
{| cellpadding=5<br />
| [[File:FEM_PostFilterContours_relnotes_1.0.png|384px]]</br>Iso-contours, depicting the y-component of the absolute magnetic</br>flux density in and around a copper wire that is flown through by</br>electric current at a frequency of 100 kHz.</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| There is the new [[Image:FEM_PostFilterContours.svg|24px]] [[FEM_PostFilterContours|Contours filter]] filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8462 Pull request #8462]<br />
|}<br />
<br />
<!--T:64--><br />
{| cellpadding=5<br />
| [[File:FEM_Elmer-Multithread_relnotes_1.0.png|384px]]</br>Simulation result (of flowing water being heated) where 8 mesh regions</br>are visible (one for every CPU core used).<br />
| It is now possible to run the solver [[FEM_SolverElmer|Elmer]] using multiple CPU cores. For more info about the caveats, see [https://forum.freecadweb.org/viewtopic.php?p=610617#p610617 this forum post]<br />
[https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
|}<br />
<br />
<!--T:87--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic2D_relnotes_1.0.png|300px]]</br>Simulation result of the imaginary part of the current density in</br>a crucible that was heated electrically by a surrounding coil.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 16 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic2D.svg|24px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]] was added. With this it is possible to perform electromagnetic simulations in 2D.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8355 Pull request #8355]<br />
|}<br />
<br />
<!--T:88--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic_relnotes_1.0.png|384px]]</br>Simulation result of the imaginary part of the magnetic flux density in</br>and around a copper wire that is flown through by electric current at</br>a frequency of 100 kHz.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic.svg|24px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]] was added. With this it is possible to perform electromagnetic simulations.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8380 Pull request #8380]<br />
|}<br />
<br />
<!--T:95--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationDeformation_relnotes_1.0.png|384px]]</br>Simulation result of an iron U-wire that is deformed</br>by pressing the ends of the U together.</br>For more info about this model, see section 8 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]] was added. With this it is possible to perform nonlinear elasticity analyses (deformation).<br />
[https://github.com/FreeCAD/FreeCAD/pull/8981 Pull request #8981]<br />
|}<br />
<br />
=== Further FEM improvements === <!--T:21--><br />
<br />
<!--T:65--><br />
* When performing analyses using the [[FEM_SolverCalculixCxxtools|CalculiX solver]], there is now also a [[FEM_PostPipelineFromResult|results pipeline]] created to visualize the results. [https://github.com/FreeCAD/FreeCAD/pull/8525 Pull request #8525] and [https://github.com/FreeCAD/FreeCAD/pull/8903 Pull request #8903]<br />
* The [[Image:FEM_ConstraintInitialPressure.svg|24px]] [[FEM_ConstraintInitialPressure|initial pressure constraint]] was added to set the initial internal pressure of fluids. [https://github.com/FreeCAD/FreeCAD/pull/7364 Pull request #7364]<br />
* The [[Image:FEM_ConstraintCurrentDensity.svg|24px]] [[FEM_ConstraintCurrentDensity|current density constraint]] was added to set current densities for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8348 Pull request #8348]<br />
* The [[Image:FEM_ConstraintMagnetization.svg|24px]] [[FEM_ConstraintMagnetization|magnetization constraint]] was added to set magnetizations for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8393 Pull request #8393]<br />
* The [[Image:FEM_ConstraintFlowVelocity.svg|24px]] [[FEM_ConstraintFlowVelocity|flow velocity constraint]] and [[Image:FEM_ConstraintInitialFlowVelocity.svg|24px]] [[FEM_ConstraintInitialFlowVelocity|initial flow velocity constraint]] were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). [https://github.com/FreeCAD/FreeCAD/pull/8963 Pull request #8963] and [https://github.com/FreeCAD/FreeCAD/pull/8964 Pull request #8964]</br>'''Note:''' This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.</br>'''Also note:''' until FreeCAD 0.20.3 the results of the flow solver were wrong (fluid density and viscosity were treated a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct.<br />
* It is now possible to define in the [[Image:FEM_ConstraintDisplacement.svg|24px]] [[FEM_ConstraintDisplacement|displacement constraint]] displacements as equations (displacement according to the current solver time).<br />
* The [[Image:FEM_ConstraintBodyHeatSource.svg|24px]] [[FEM_ConstraintBodyHeatSource|body heat source constraint]] has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. [https://github.com/FreeCAD/FreeCAD/pull/7367 Pull request #7367]<br />
* The [[Image:FEM_ConstraintSpring.svg|24px]] [[FEM_ConstraintSpring|spring constraint]] was not used by any solver. Now it can be used by the [[FEM_SolverElmer|Elmer]] solver via the equations [[FEM_EquationDeformation|Deformation]] and [[FEM_EquationElasticity|Elasticity]]. [https://github.com/FreeCAD/FreeCAD/pull/9005 Pull request #9005]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionCylinder.svg|24px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8735 Pull request #8735]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionBox.svg|24px]] [[FEM_PostCreateFunctionBox|Filter function box]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8825 Pull request #8825]<br />
* It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an [[FEM_SolverElmer|Elmer]] simulation, when more than one CPU core is used for calculations. [https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
* Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. [https://github.com/FreeCAD/FreeCAD/pull/7467 Pull request #7467]<br />
* [[Image:FEM_FemMesh2Mesh.svg|24px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]] has the new parameter ''scale'' to define the scale of deformed mesh using Python. [https://forum.freecadweb.org/viewtopic.php?f=18&t=71936 Forum thread] and [https://github.com/FreeCAD/FreeCAD/pull/7715 Pull request #7715]<br />
* The [[FEM_Preferences|preferences]] have a new option to define what solver should automatically be added when creating a new analysis.<br />
* New example files for the following equations are available via the [[FEM_Examples|FEM Examples]]: [[FEM_EquationDeformation|Deformation]], [[FEM_EquationFlow|Flow]], [[FEM_EquationFlux|Flux]], [[FEM_EquationHeat|Heat]], [[FEM_EquationMagnetodynamic|Magnetodynamic]] and [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D]]. Pull requests [https://github.com/FreeCAD/FreeCAD/pull/8550 #8550], [https://github.com/FreeCAD/FreeCAD/pull/8569 #8569], [https://github.com/FreeCAD/FreeCAD/pull/8579 #8579], [https://github.com/FreeCAD/FreeCAD/pull/8597 #8597], [https://github.com/FreeCAD/FreeCAD/pull/8630 #8630] and [https://github.com/FreeCAD/FreeCAD/pull/9004 #9004].<br />
* New material card for carbon dioxide and a titanium alloy. [https://github.com/FreeCAD/FreeCAD/pull/8332 Pull request #8332] and [https://github.com/FreeCAD/FreeCAD/pull/8636 Pull request #8636]<br />
<br />
== Export == <!--T:22--> <br />
<br />
== Mesh == <!--T:23--><br />
<br />
=== Further Mesh improvements === <!--T:24--><br />
<br />
<!--T:75--><br />
* Support to add transparencies to a mesh. [https://forum.freecadweb.org/viewtopic.php?f=22&t=72531 Forum thread] and [https://github.com/FreeCAD/FreeCAD/commit/f88305e Commit f88305e]<br />
<br />
== OpenSCAD Workbench == <!--T:25--><br />
<br />
== Part Workbench == <!--T:26--><br />
<br />
=== Further Part improvements === <!--T:27--><br />
<br />
<!--T:94--><br />
* The [[Part_PointsFromMesh|Part PointsFromMesh]] command has been extended to accept any geometric object as input. [https://github.com/FreeCAD/FreeCAD/pull/8730 Pull request #8730]<br />
<br />
== PartDesign Workbench == <!--T:28--><br />
<br />
<!--T:76--><br />
{| cellpadding=5<br />
| [[Image:PD_Counterdrill_relnotes_1.0.png|384px]]</br>A counterdrill hole.<br />
| The [[PartDesign_Hole|Hole]] dialog supports the screw head type ''Counterdrill''.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7562 Pull request #7562]<br />
|-<br />
|}<br />
<br />
=== Further PartDesign improvements === <!--T:29--><br />
<br />
<!--T:77--><br />
* In the [[PartDesign_Hole|Hole]] dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. [https://github.com/FreeCAD/FreeCAD/pull/7654 Pull request #7654]<br />
* In the [[PartDesign_AdditiveLoft|Additive Loft]] and [[PartDesign_SubtractiveLoft|Subtractive Loft]] dialogs, the previously non-functional option '''Closed''' does now create a closed loft (like a ring). [https://github.com/FreeCAD/FreeCAD/pull/8748 Pull request #8748]<br />
* The [[Sketcher_ValidateSketch|Validate sketch]] command was added to Helper toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The unusable [[Sketcher_LeaveSketch|Leave sketch]] and [[Sketcher_ViewSketch|View sketch]] commands were removed from the menu. The [[Sketcher_EditSketch|Edit sketch]], [[Sketcher_MergeSketches|Merge sketches]] and [[Sketcher_MirrorSketch|Mirror sketch]] commands were added to the menu. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create [https://en.wikipedia.org/wiki/Spline_(mechanical) involute splines] too. [https://github.com/FreeCAD/FreeCAD/pull/8184 Pull request #8184]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] now offers profile shifting. [https://github.com/FreeCAD/FreeCAD/issues/5618 Issue #5618] and [https://github.com/FreeCAD/FreeCAD/pull/8934 Pull request #8934]<br />
<br />
== Path Workbench == <!--T:30--><br />
<br />
<!--T:31--><br />
* Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. [https://github.com/FreeCAD/FreeCAD/pull/6637 Pull request #6637]<br />
<br />
<!--T:32--><br />
* Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, WCS, or operation label. This is in addition to the other existing substitution strings like date, job name, etc.<br />
<br />
<!--T:66--><br />
* Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.[https://github.com/FreeCAD/FreeCAD/pull/7469 Pull request #7469]<br />
<br />
== Plot module == <!--T:33--><br />
<br />
== Sketcher Workbench == <!--T:34--><br />
<br />
<!--T:81--><br />
{| cellpadding=5<br />
| [[File:Constrain B-spline knots_relnotes_1.0.gif|384px]]</br>Dragging of B-spline knots.</br>Click on the image to see the animation.<br />
| B-spline knots can now be dragged around and constrained like any other sketch point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7484 Pull request #7484]<br />
|-<br />
|}<br />
<br />
<!--T:67--><br />
{| cellpadding=5<br />
| [[File:sketcher-move-piece_relnotes_1.0.gif|384px]]</br>Dragging of a B-spline.</br>Click on the image if the animation does not start.<br />
| Dragging a B-spline now only moves the part between knots.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7110 Pull request #7110]<br />
|-<br />
|}<br />
<br />
<!--T:83--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Join_Curves_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The [[Sketcher_JoinCurves|Join curves]] tool has been added. It can combine multiple curves into a single B-spline.<br />
[https://github.com/FreeCAD/FreeCAD/pull/6507 Pull request #6507]<br />
|-<br />
|}<br />
<br />
<!--T:72--><br />
{| cellpadding=5<br />
| [[File:Sketcher_BackEdit_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7417 Pull request #7417]<br />
|-<br />
|}<br />
<br />
<!--T:90--><br />
{| cellpadding=5<br />
| [[File:Grid rework.png|384px]]<br />
| The Sketcher grid has been reworked. The [[Sketcher_Grid|Grid]] tool has been added. Automatic rescalling of grid option has been added.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:91--><br />
{| cellpadding=5<br />
| [[File:Constraint widget.png|384px]]<br />
| The Sketcher Constraint widget has been reworked to simplify the UI.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7566 Pull request #7566]<br />
|-<br />
|}<br />
<br />
<!--T:78--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Element_Widget_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7567 Pull request #7567]<br />
|-<br />
|}<br />
<br />
<!--T:92--><br />
{| cellpadding=5<br />
| [[File:Sketcher grid relnotes 1.0.gif.gif|384px]]<br />
| A feature to automatically resize the grid according to the zoom level and other improvements were introduced.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:93--><br />
{| cellpadding=5<br />
| [[File:Sketcher layers relnotes 1.0.gif|384px]]<br />
| Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road.<br />
This PR also removes the rendering order options (no longer needed) and the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8716 Pull request #8716]<br />
|-<br />
|}<br />
<br />
=== Further Sketcher improvements === <!--T:35--><br />
<br />
<!--T:74--><br />
* The toolbar button for [[Sketcher_ConstrainSnellsLaw|Constrain refraction (Snell's law)]] has been removed. [https://github.com/FreeCAD/FreeCAD/commit/ef62fc3 Commit ef62fc3]<br />
* The [[Sketcher_Workbench#Dimensional_constraints|Dimensional Constraints]] and Quantity Spin Boxes now support the same math as [[Expressions|Expressions]] (Evaluated in place). [https://github.com/FreeCAD/FreeCAD/pull/7124 Pull Request #7124]<br />
* The toolbar buttons for [[Sketcher_SelectRedundantConstraints|Select redundant constraints]] and [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]] have been removed. [https://github.com/FreeCAD/FreeCAD/pull/7568 Pull request #7568]<br />
* The toolbar button for [[Sketcher_StopOperation|Stop operation]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7569 Pull request #7569]<br />
* The 'Edit controls' section in the Sketcher dialog has been made optional. [https://github.com/FreeCAD/FreeCAD/pull/7572 Pull request #7572]<br />
* The toolbar button for [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7603 Pull request #7603]<br />
* The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. [https://github.com/FreeCAD/FreeCAD/pull/7655 Pull request #7655]<br />
* [[Sketcher_ConstrainCoincident|Coincident constraint]] can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. [https://github.com/FreeCAD/FreeCAD/pull/7703 Pull request #7703]<br />
* [[Sketcher_CarbonCopy|Carbon copy]] if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. [https://github.com/FreeCAD/FreeCAD/pull/7688 Pull request #7688]<br />
* The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. [https://github.com/FreeCAD/FreeCAD/pull/8864 Pull request #8864]<br />
* [[Sketcher_Split|Split]] now supports more curves (ellipses, parabolas, hyperbolas and B-splines). [https://github.com/FreeCAD/FreeCAD/pull/6971 Pull request #6971]<br />
<br />
== Spreadsheet Workbench == <!--T:36--><br />
<br />
=== Further Spreadsheet improvements === <!--T:37--><br />
<br />
== TechDraw Workbench == <!--T:38--><br />
<br />
<!--T:68--><br />
{| cellpadding=5<br />
| [[File:TechDraw_SurfaceFinishExample_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_SurfaceFinishSymbol|SurfaceFinishSymbol]] tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing [[TechDraw_LeaderLine|LeaderLine]] tool can be used to properly refer oriented symbols to the edges of an object.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7227 Pull request #7227]<br />
|-<br />
| [[File:TechDraw_ComplexSection_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_ComplexSection|ComplexSection]] tool was added to allow for the creation of half, offset and aligned sections.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
|-<br />
|}<br />
<br />
=== Further TechDraw improvements === <!--T:39--><br />
<br />
<!--T:69--><br />
* Navigation modes have been updated to match those used in the 3D view. [https://github.com/FreeCAD/FreeCAD/pull/7081 Pull request #7081] and [https://github.com/FreeCAD/FreeCAD/pull/7107 Pull request #7107]<br />
* Bitmap hatching was fixed. [https://github.com/FreeCAD/FreeCAD/issues/6582 Issue #6582] and [https://github.com/FreeCAD/FreeCAD/pull/7121 Pull request #7121]<br />
* Support for adjustable gaps for extension lines of [[TechDraw_Preferences#Dimensions|dimensions]] was added. [https://github.com/FreeCAD/FreeCAD/pull/7133 Pull request #7133]<br />
* Multithreading was introduced for hidden line removal and face finding. [https://github.com/FreeCAD/FreeCAD/pull/7377 Pull request #7377]<br />
* The face detection algorithm was improved. [https://github.com/FreeCAD/FreeCAD/pull/7448 Pull request #7448]<br />
* The [[TechDraw_PrintAll|PrintAll]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_StackGroup|Four tools]] to control the stacking order of views were added. [https://github.com/FreeCAD/FreeCAD/issues/6012 Issue #6012] and [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_ActiveView|ActiveView]] now creates a screen capture instead of an SVG image. [https://github.com/FreeCAD/FreeCAD/pull/7471 Pull request #7471]<br />
* All Latin script templates have been converted to "plain svg". [https://github.com/FreeCAD/FreeCAD/pull/7472 Pull request #7472]<br />
* A preview was added to the task panel of the [[TechDraw_SectionView|SectionView]] tool. [https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
* Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.<br />
* The [[TechDraw_HoleShaftFit|HoleShaftFit]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8455 Pull request #8455]<br />
* The [[TechDraw_AxoLengthDimension|AxoLengthDimension]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8359 Pull request #8359]<br />
* 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
* The [[TechDraw_DimensionRepair|DimensionRepair]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
<br />
== Web == <!--T:40--><br />
<br />
== External workbenches == <!--T:41--><br />
<br />
=== A2plus === <!--T:42--><br />
<br />
=== Assembly3 === <!--T:43--><br />
<br />
=== Assembly4 === <!--T:44--><br />
<br />
=== FCGear === <!--T:45--><br />
<br />
=== Ship === <!--T:46--><br />
<br />
== Compilation == <!--T:47--><br />
<br />
<!--T:48--><br />
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.8 according to the [[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 development goals]].<br />
<br />
<!--T:49--><br />
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|macOS]].<br />
<br />
<!--T:50--><br />
The supported operating systems are:<br />
* Windows 7, 8, 10 and 11<br />
* Linux Ubuntu Focal Fossa (20.04) and newer<br />
* macOS: 10.12 Sierra or newer<br />
<br />
== Known Limitations == <!--T:51--><br />
<br />
===32bit Windows=== <!--T:52--><br />
<br />
<!--T:53--><br />
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.<br />
<br />
===Remote Desktop under Windows=== <!--T:54--><br />
<br />
<!--T:55--><br />
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver.<br />
Only if this doesn't help:<br />
* Download [https://downloads.fdossena.com/geth.php?r=mesa64-latest this] OpenGL library for 64bit Windows and extract it.<br />
* Rename the DLL file to ''opengl32sw.dll'' and copy it to the ''bin'' subfolder of FreeCAD's installation folder (overwrite the existing DLL there).<br />
<br />
===macOS: Start Workbench shows blank page === <!--T:70--><br />
<br />
<!--T:71--><br />
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|FreeCAD-1.0 → Preferences → Display}}.<br />
<br />
<br />
</translate><br />
[[Category:News{{#translation:}}]]<br />
[[Category:Documentation{{#translation:}}]]<br />
[[Category:Releases{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Release_notes_1.0&diff=1246003Release notes 1.02023-03-27T02:15:25Z<p>Uwestoehr: new constraint feature</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{VeryImportantMessage|FreeCAD 1.0 is under development, there is no expected released date yet.}}<br />
<br />
<!--T:2--><br />
{{Message|<br />
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;69438 Release notes for v1.0] forum thread.<br />
<br />
<!--T:3--><br />
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.<br />
}}<br />
{{Message|All images on this page must use the {{FileName|_relnotes_1.0}} suffix}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:4--><br />
'''FreeCAD 1.0''' was released on '''DD MM 2023''', get it from the [[Download|Download]] page. This page lists all new features and changes.<br />
<br />
<!--T:5--><br />
Older FreeCAD release notes can be found in the [[Feature_list#Release_notes|Feature list]].<br />
<br />
<!--T:6--><br />
Placeholder for an eye-catching image selected by the admins from the [https://forum.freecadweb.org/viewforum.php?f=24 user showcases forum].<br />
<br />
== General == <!--T:7--><br />
<br />
== User interface == <!--T:8--><br />
<br />
<!--T:82--><br />
{|cellpadding=5<br />
| [[File:Navi_Cube_relnotes_1.0.gif]]<br />
| The navigation cube corner faces are now hexagonal and bigger, making them easier to click.<br />
The font, font size and button color (the arrows around the cube) can now also be changed in the [[Preferences_Editor#Navigation|preferences]].</br><br />
[https://github.com/FreeCAD/FreeCAD/pull/7876 Pull request #7876], [https://github.com/FreeCAD/FreeCAD/pull/8266 Pull request #8266] and [https://github.com/FreeCAD/FreeCAD/pull/8646 Pull request #8646].<br />
|}<br />
<br />
<!--T:85--><br />
{|cellpadding=5<br />
| [[File:Part_SectionCut_example_relnotes_1.0.gif|384px]]</br>Persistent section cut of intersecting objects.</br>Click on the image to see the animation.<br />
| The [[Part_SectionCut|Section Cut]] tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues.<br>[https://github.com/FreeCAD/FreeCAD/pull/8252 Pull request #8252].<br />
|}<br />
<br />
<!--T:56--><br />
{| cellpadding=5<br />
| [[File:Measurement-Part_relnotes_1.0.png|384px]]<br />
| The display style of [[Part_Workbench#Measure|measurement]] results created using the [[Part_Workbench|Part]] or [[PartDesign_Workbench|PartDesign]] workbench can now be changed in the [[PartDesign_Preferences#Measure|preferences]].<br />
[https://github.com/FreeCAD/FreeCAD/pull/7148 Pull request #7148]<br />
|}<br />
<br />
<!--T:80--><br />
{| cellpadding=5<br />
| [[File:WbSelector_relnotes_1.0.png|384px]]<br />
| The workbench selector can now optionally be put in the menubar instead of the toolbar area.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7679 Pull request #7679]<br />
|}<br />
<br />
<br />
=== Further user interface improvements === <!--T:9--><br />
<br />
<!--T:57--><br />
* The button for [[Image:Std_UserEditModeDefault.svg|24px]] [[Std_UserEditMode|Edit Mode]] has been removed from the standard toolbar. It can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7570 Pull request #7570]<br />
* The buttons for [[Image:Std_Print.svg|24px]] [[Std_Print|Print]], [[Image:Std_Copy.svg|24px]] [[Std_Copy|Copy]], [[Image:Std_Paste.svg|24px]] [[Std_Paste|Paste]] and [[Image:Std_Cut.svg|24px]] [[Std_Cut|Cut]] have been removed from the standard toolbar. They can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7571 Pull request #7571] and [https://github.com/FreeCAD/FreeCAD/commit/ea9a04e commit ea9a04e]<br />
* Commands to [[Std_StoreWorkingView|store]] and [[Std_RecallWorkingView|recall]] a temporary working view have been added. [https://github.com/FreeCAD/FreeCAD/pull/7525 Pull request #7525]<br />
* Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by [[Draft_Line|Draft Line]]) are disabled if the widget doesn't have the focus and the [[Fine-tuning#Mouse_related|ComboBoxWheelEventFilter]] parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. [https://github.com/FreeCAD/FreeCAD/pull/7561 Pull request #7561]<br />
* It is now possible to set a default transparency for new [[Part_Module|Part]] or [[PartDesign_Workbench|PartDesign]] objects in the [[PartDesign_Preferences|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7103 Pull request #7103]<br />
* There is the new orbit style '''Free Turntable'''. It can either be enabled in the [[Preferences_Editor#Navigation|Preferences]] or by pressing the {{Button|[[File:NavigationCAD_dark.svg|16px]]}} button in the [[Status_bar|Status bar]] and then using the menu {{MenuCommand|Settings → Orbit}}). [https://github.com/FreeCAD/FreeCAD/pull/8048 Pull Request #8048]<br />
* The [[Std_SetAppearance|Std SetAppearance]] task panel now also has a button to set the Point Color property. [https://github.com/FreeCAD/FreeCAD/pull/7708 Pull request #7708]<br />
* A button has been added to switch the colors of the [[3D_view|3D view]] background gradient in the [[Preferences_Editor#Colors|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7155 Pull request #7155]<br />
* All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the [[Property_editor|property editor]] changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. [https://github.com/FreeCAD/FreeCAD/pull/7723 Pull request #7723]<br />
* The Output window has been renamed to Report view for uniformity with the UI. [https://github.com/FreeCAD/FreeCAD/pull/7739 Pull Request #7739]<br />
<br />
== Core system and API == <!--T:10--><br />
<br />
=== Core === <!--T:11--><br />
<br />
<!--T:89--><br />
* The function '''cbrt(x)''' for cubic roots was added for use in [[Expressions#Exponential_and_logarithmic_functions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8629 Pull request #8629]<br />
* Many new [[Property#All_property_types|Properties]] are available for scripting. [https://github.com/FreeCAD/FreeCAD/pull/6717 Pull request #6717]<br />
* Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in [[Expressions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8603 Pull request #8603].<br />
<br />
=== API === <!--T:12--><br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
==== New Python API ==== <!--T:13--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:58--><br />
* ''BSplineSurfacePy::scaleKnotsToBounds'': Scales the U and V knots lists to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7258 Pull request #7258] and [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
* ''BSplineCurvePy::scaleKnotsToBounds'': Scales the knots list to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
<br />
<!--T:14--><br />
* ''ShapeFix_EdgeConnectPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/4d4adb93 commit 4d4adb93]<br />
* ''ShapeFix_EdgePy'': Fixing invalid edge. [https://github.com/FreeCAD/FreeCAD/commit/4089cbfb commit 4089cbfb]<br />
* ''ShapeFix_FaceConnectPy'': Rebuilds connectivity between faces in shell. [https://github.com/FreeCAD/FreeCAD/commit/a0eb2e9d commit a0eb2e9d]<br />
* ''ShapeFix_FacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/b6cd635c commit b6cd635c]<br />
* ''ShapeFix_FixSmallFacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/4c2946c8 commit 4c2946c8]<br />
* ''ShapeFix_FixSmallSolidPy'': Fixing solids with small size. [https://github.com/FreeCAD/FreeCAD/commit/b70d8d37 commit b70d8d37]<br />
* ''ShapeFix_FreeBoundsPy'': Intended to output free bounds of the shape. [https://github.com/FreeCAD/FreeCAD/commit/1ee1aee1 commit 1ee1aee1]<br />
* ''ShapeFix_RootPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_ShapePy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/87db9dcc commit 87db9dcc]<br />
* ''ShapeFix_ShapeTolerancePy'': Modifies tolerances of sub-shapes (vertices, edges, faces). [https://github.com/FreeCAD/FreeCAD/commit/125d5b63 commit 125d5b63]<br />
* ''ShapeFix_ShellPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_SolidPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/8d568793 commit 8d568793]<br />
* ''ShapeFix_SplitCommonVertexPy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/4b44c54c commit 4b44c54c]<br />
* ''ShapeFix_SplitToolPy'': Tool for splitting and cutting edges. [https://github.com/FreeCAD/FreeCAD/commit/bbecc3f2 commit bbecc3f2]<br />
* ''ShapeFix_WireframePy'': Provides methods for fixing wireframe of shape. [https://github.com/FreeCAD/FreeCAD/commit/6843a461 commit 6843a461]<br />
* ''ShapeFix_WirePy'': Class for fixing operations on wires. [https://github.com/FreeCAD/FreeCAD/commit/94f6279a commit 94f6279a]<br />
* ''ShapeFix_WireVertexPy'': Fixing disconnected edges in the wire. [https://github.com/FreeCAD/FreeCAD/commit/8c6ffc99 commit 8c6ffc99]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
==== Removed Python API ==== <!--T:59--><br />
<br />
<!--T:60--><br />
* ''FreeCAD.EndingAdd'': replaced by ''FreeCAD.addImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
* ''FreeCAD.EndingGet'': replaced by ''FreeCAD.getImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
== Addon Manager == <!--T:16--><br />
<br />
== Arch Workbench == <!--T:17--><br />
<br />
<!--T:84--><br />
* Several edit mode issues have been fixed and the [[Tree_view|Tree view]] context menus for Arch objects have been improved. Objects that can be edited now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/8122 Pull request #8122]<br />
<br />
=== Further Arch improvements === <!--T:61--><br />
<br />
<!--T:62--><br />
* [[Arch_Profile|Arch Profile]] objects now support modification of the profile type after creation. [https://github.com/FreeCAD/FreeCAD/pull/7217 Pull request #7217]<br />
* The Terrain of an [[Arch_Site|Arch Site]] can now also be a solid. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* An [[Arch_Site|Arch Site]] no longer shows a phantom representation of the objects in its Group. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* [[Arch_SectionPlane|Arch SectionPlane]] objects now handle non-solid objects the same as solid objects. [https://github.com/FreeCAD/FreeCAD/pull/8688 Pull request #8688]<br />
<br />
== Draft Workbench == <!--T:18--><br />
<br />
<!--T:63--><br />
* The inaccuracy of [[Draft_Snap_Near|Draft Snap Near]] when snapping to curves was fixed. In addition, [[Draft_Snap_Perpendicular|Draft Snap Perpendicular]] can now also snap to faces and find multiple points. To snap to a vertex (e.g. a [[Draft_Point|Draft Point]]) [[Draft_Snap_Endpoint|Draft Snap Endpoint]] must now be used instead of [[Draft_Snap_Near|Draft Snap Near]]. [https://github.com/FreeCAD/FreeCAD/pull/7132 Pull request #7132]<br />
* To make working with [[Draft_Layer|layers]] easier their drag and drop behavior was modified. If you drop an object from a [[Std_Group|Std Group]], or a group-like object such as an [[Arch_BuildingPart|Arch BuildingPart]], on a layer, it is no longer removed from the group, and vice versa. This works without holding down the {{KEY|Ctrl}} key. [https://github.com/FreeCAD/FreeCAD/pull/7462 Pull request #7462]<br />
* The [[Draft_PointArray|Draft PointArray]] command now supports more point object types. Any object with a shape and vertices, as well as a [[Mesh_Workbench|mesh]] and a [[Points_Workbench|point cloud]] can be used. [https://github.com/FreeCAD/FreeCAD/pull/7597 Pull request #7597]<br />
* The [[Tree_view|Tree view]] context menus for Draft objects have been improved. Objects that can be edited with the [[Draft_Edit|Draft Edit]] command, or that have a dedicated edit solution, now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/7970 Pull request #7970]<br />
* The properties of Draft annotation objects have been unified. [[Draft_Text|Draft Text]], [[Draft_Dimension|Draft Dimension]] and [[Draft_Label|Draft Label]] objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. [https://github.com/FreeCAD/FreeCAD/issues/7861 Issue #7861] and [https://github.com/FreeCAD/FreeCAD/pull/8081 Pull request #8081]<br />
* Undo/Redo did not work properly for the Draft modification commands on Windows. [https://github.com/FreeCAD/FreeCAD/pull/8267 Pull request #8267]<br />
<br />
=== Further Draft improvements === <!--T:19--><br />
<br />
<!--T:73--><br />
* Several [[Draft_PathArray|Draft PathArray]] related issues have been fixed. [https://github.com/FreeCAD/FreeCAD/pull/7506 Pull request #7506] and [https://github.com/FreeCAD/FreeCAD/pull/7662 Pull request #7662]<br />
* The [[Draft_Edit|Draft Edit]] command has received several improvements. For [[Draft_Wire|wires]], [[Draft_BSpline|B-splines]] and [[Draft BezCurve|Bézier curves]] a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. [https://github.com/FreeCAD/FreeCAD/pull/7527 Pull request #7527] and [https://github.com/FreeCAD/FreeCAD/pull/7541 Pull request #7541]<br />
* The [[Draft_Snap|Draft Snap]] toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. [https://github.com/FreeCAD/FreeCAD/pull/7656 Pull request #7656]<br />
* In the task panel of the [[Draft_SetStyle|Draft SetStyle]] command the "Texts/dims" button has been replaced by the "Annotations" button. Pressing this button will process all annotations, including [[Draft_Label|Draft Labels]]. Several minor additional issues were also fixed. [https://github.com/FreeCAD/FreeCAD/pull/8190 Pull request #8190], [https://github.com/FreeCAD/FreeCAD/pull/8195 Pull request #8195] and [https://github.com/FreeCAD/FreeCAD/pull/8196 Pull request #8196]<br />
* Several [[Draft_AnnotationStyleEditor|Draft AnnotationStyleEditor]] bugs have been fixed and a separate Text color button has been added. [https://github.com/FreeCAD/FreeCAD/pull/8207 Pull request #8207]<br />
* Start and End Offset properties have been added to [[Draft_PathArray|Draft PathArray]] objects. [https://github.com/FreeCAD/FreeCAD/pull/8295 Pull request #8295]<br />
* A Count property has been added to the arrays that lacked this property: the non-Link versions of [[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]] and [[Draft_CircularArray|Draft CircularArray]]. [https://github.com/FreeCAD/FreeCAD/pull/8433 Pull request #8433]<br />
<br />
== FEM Workbench == <!--T:20--><br />
<br />
<!--T:86--><br />
{| cellpadding=5<br />
| [[File:FEM_PostFilterContours_relnotes_1.0.png|384px]]</br>Iso-contours, depicting the y-component of the absolute magnetic</br>flux density in and around a copper wire that is flown through by</br>electric current at a frequency of 100 kHz.</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| There is the new [[Image:FEM_PostFilterContours.svg|24px]] [[FEM_PostFilterContours|Contours filter]] filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8462 Pull request #8462]<br />
|}<br />
<br />
<!--T:64--><br />
{| cellpadding=5<br />
| [[File:FEM_Elmer-Multithread_relnotes_1.0.png|384px]]</br>Simulation result (of flowing water being heated) where 8 mesh regions</br>are visible (one for every CPU core used).<br />
| It is now possible to run the solver [[FEM_SolverElmer|Elmer]] using multiple CPU cores. For more info about the caveats, see [https://forum.freecadweb.org/viewtopic.php?p=610617#p610617 this forum post]<br />
[https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
|}<br />
<br />
<!--T:87--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic2D_relnotes_1.0.png|300px]]</br>Simulation result of the imaginary part of the current density in</br>a crucible that was heated electrically by a surrounding coil.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 16 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic2D.svg|24px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]] was added. With this it is possible to perform electromagnetic simulations in 2D.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8355 Pull request #8355]<br />
|}<br />
<br />
<!--T:88--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic_relnotes_1.0.png|384px]]</br>Simulation result of the imaginary part of the magnetic flux density in</br>and around a copper wire that is flown through by electric current at</br>a frequency of 100 kHz.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic.svg|24px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]] was added. With this it is possible to perform electromagnetic simulations.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8380 Pull request #8380]<br />
|}<br />
<br />
<!--T:95--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationDeformation_relnotes_1.0.png|384px]]</br>Simulation result of an iron U-wire that is deformed</br>by pressing the ends of the U together.</br>For more info about this model, see section 8 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]] was added. With this it is possible to perform nonlinear elasticity analyses (deformation).<br />
[https://github.com/FreeCAD/FreeCAD/pull/8981 Pull request #8981]<br />
|}<br />
<br />
=== Further FEM improvements === <!--T:21--><br />
<br />
<!--T:65--><br />
* When performing analyses using the [[FEM_SolverCalculixCxxtools|CalculiX solver]], there is now also a [[FEM_PostPipelineFromResult|results pipeline]] created to visualize the results. [https://github.com/FreeCAD/FreeCAD/pull/8525 Pull request #8525] and [https://github.com/FreeCAD/FreeCAD/pull/8903 Pull request #8903]<br />
* The [[Image:FEM_ConstraintInitialPressure.svg|24px]] [[FEM_ConstraintInitialPressure|initial pressure constraint]] was added to set the initial internal pressure of fluids. [https://github.com/FreeCAD/FreeCAD/pull/7364 Pull request #7364]<br />
* The [[Image:FEM_ConstraintCurrentDensity.svg|24px]] [[FEM_ConstraintCurrentDensity|current density constraint]] was added to set current densities for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8348 Pull request #8348]<br />
* The [[Image:FEM_ConstraintMagnetization.svg|24px]] [[FEM_ConstraintMagnetization|magnetization constraint]] was added to set magnetizations for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8393 Pull request #8393]<br />
* The [[Image:FEM_ConstraintFlowVelocity.svg|24px]] [[FEM_ConstraintFlowVelocity|flow velocity constraint]] and [[Image:FEM_ConstraintInitialFlowVelocity.svg|24px]] [[FEM_ConstraintInitialFlowVelocity|initial flow velocity constraint]] were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). [https://github.com/FreeCAD/FreeCAD/pull/8963 Pull request #8963] and [https://github.com/FreeCAD/FreeCAD/pull/8964 Pull request #8964]</br>'''Note:''' This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.</br>'''Also note:''' until FreeCAD 0.20.3 the results of the flow solver were wrong (fluid density and viscosity were treated a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct.<br />
* It is now possible to define in the [[Image:FEM_ConstraintDisplacement.svg|24px]] [[FEM_ConstraintDisplacement|displacement constraint]] displacements as equations (displacement according to the current solver time).<br />
* The [[Image:FEM_ConstraintBodyHeatSource.svg|24px]] [[FEM_ConstraintBodyHeatSource|body heat source constraint]] has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. [https://github.com/FreeCAD/FreeCAD/pull/7367 Pull request #7367]<br />
* The [[Image:FEM_ConstraintSpring.svg|24px]] [[FEM_ConstraintSpring|spring constraint]] was not used by any solver. Now it can be used by the [[FEM_SolverElmer|Elmer]] solver via the equations [[FEM_EquationDeformation|Deformation]] and [[FEM_EquationElasticity|Elasticity]]. [https://github.com/FreeCAD/FreeCAD/pull/9005 Pull request #9005]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionCylinder.svg|24px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8735 Pull request #8735]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionBox.svg|24px]] [[FEM_PostCreateFunctionBox|Filter function box]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8825 Pull request #8825]<br />
* It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an [[FEM_SolverElmer|Elmer]] simulation, when more than one CPU core is used for calculations. [https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
* Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. [https://github.com/FreeCAD/FreeCAD/pull/7467 Pull request #7467]<br />
* [[Image:FEM_FemMesh2Mesh.svg|24px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]] has the new parameter ''scale'' to define the scale of deformed mesh using Python. [https://forum.freecadweb.org/viewtopic.php?f=18&t=71936 Forum thread] and [https://github.com/FreeCAD/FreeCAD/pull/7715 Pull request #7715]<br />
* New example files for the following equations are available via the [[FEM_Examples|FEM Examples]]: [[FEM_EquationDeformation|Deformation]], [[FEM_EquationFlow|Flow]], [[FEM_EquationFlux|Flux]], [[FEM_EquationHeat|Heat]], [[FEM_EquationMagnetodynamic|Magnetodynamic]] and [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D]]. Pull requests [https://github.com/FreeCAD/FreeCAD/pull/8550 #8550], [https://github.com/FreeCAD/FreeCAD/pull/8569 #8569], [https://github.com/FreeCAD/FreeCAD/pull/8579 #8579], [https://github.com/FreeCAD/FreeCAD/pull/8597 #8597], [https://github.com/FreeCAD/FreeCAD/pull/8630 #8630] and [https://github.com/FreeCAD/FreeCAD/pull/9004 #9004].<br />
* New material card for carbon dioxide and a titanium alloy. [https://github.com/FreeCAD/FreeCAD/pull/8332 Pull request #8332] and [https://github.com/FreeCAD/FreeCAD/pull/8636 Pull request #8636]<br />
<br />
== Export == <!--T:22--> <br />
<br />
== Mesh == <!--T:23--><br />
<br />
=== Further Mesh improvements === <!--T:24--><br />
<br />
<!--T:75--><br />
* Support to add transparencies to a mesh. [https://forum.freecadweb.org/viewtopic.php?f=22&t=72531 Forum thread] and [https://github.com/FreeCAD/FreeCAD/commit/f88305e Commit f88305e]<br />
<br />
== OpenSCAD Workbench == <!--T:25--><br />
<br />
== Part Workbench == <!--T:26--><br />
<br />
=== Further Part improvements === <!--T:27--><br />
<br />
<!--T:94--><br />
* The [[Part_PointsFromMesh|Part PointsFromMesh]] command has been extended to accept any geometric object as input. [https://github.com/FreeCAD/FreeCAD/pull/8730 Pull request #8730]<br />
<br />
== PartDesign Workbench == <!--T:28--><br />
<br />
<!--T:76--><br />
{| cellpadding=5<br />
| [[Image:PD_Counterdrill_relnotes_1.0.png|384px]]</br>A counterdrill hole.<br />
| The [[PartDesign_Hole|Hole]] dialog supports the screw head type ''Counterdrill''.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7562 Pull request #7562]<br />
|-<br />
|}<br />
<br />
=== Further PartDesign improvements === <!--T:29--><br />
<br />
<!--T:77--><br />
* In the [[PartDesign_Hole|Hole]] dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. [https://github.com/FreeCAD/FreeCAD/pull/7654 Pull request #7654]<br />
* In the [[PartDesign_AdditiveLoft|Additive Loft]] and [[PartDesign_SubtractiveLoft|Subtractive Loft]] dialogs, the previously non-functional option '''Closed''' does now create a closed loft (like a ring). [https://github.com/FreeCAD/FreeCAD/pull/8748 Pull request #8748]<br />
* The [[Sketcher_ValidateSketch|Validate sketch]] command was added to Helper toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The unusable [[Sketcher_LeaveSketch|Leave sketch]] and [[Sketcher_ViewSketch|View sketch]] commands were removed from the menu. The [[Sketcher_EditSketch|Edit sketch]], [[Sketcher_MergeSketches|Merge sketches]] and [[Sketcher_MirrorSketch|Mirror sketch]] commands were added to the menu. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create [https://en.wikipedia.org/wiki/Spline_(mechanical) involute splines] too. [https://github.com/FreeCAD/FreeCAD/pull/8184 Pull request #8184]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] now offers profile shifting. [https://github.com/FreeCAD/FreeCAD/issues/5618 Issue #5618] and [https://github.com/FreeCAD/FreeCAD/pull/8934 Pull request #8934]<br />
<br />
== Path Workbench == <!--T:30--><br />
<br />
<!--T:31--><br />
* Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. [https://github.com/FreeCAD/FreeCAD/pull/6637 Pull request #6637]<br />
<br />
<!--T:32--><br />
* Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, WCS, or operation label. This is in addition to the other existing substitution strings like date, job name, etc.<br />
<br />
<!--T:66--><br />
* Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.[https://github.com/FreeCAD/FreeCAD/pull/7469 Pull request #7469]<br />
<br />
== Plot module == <!--T:33--><br />
<br />
== Sketcher Workbench == <!--T:34--><br />
<br />
<!--T:81--><br />
{| cellpadding=5<br />
| [[File:Constrain B-spline knots_relnotes_1.0.gif|384px]]</br>Dragging of B-spline knots.</br>Click on the image to see the animation.<br />
| B-spline knots can now be dragged around and constrained like any other sketch point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7484 Pull request #7484]<br />
|-<br />
|}<br />
<br />
<!--T:67--><br />
{| cellpadding=5<br />
| [[File:sketcher-move-piece_relnotes_1.0.gif|384px]]</br>Dragging of a B-spline.</br>Click on the image if the animation does not start.<br />
| Dragging a B-spline now only moves the part between knots.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7110 Pull request #7110]<br />
|-<br />
|}<br />
<br />
<!--T:83--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Join_Curves_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The [[Sketcher_JoinCurves|Join curves]] tool has been added. It can combine multiple curves into a single B-spline.<br />
[https://github.com/FreeCAD/FreeCAD/pull/6507 Pull request #6507]<br />
|-<br />
|}<br />
<br />
<!--T:72--><br />
{| cellpadding=5<br />
| [[File:Sketcher_BackEdit_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7417 Pull request #7417]<br />
|-<br />
|}<br />
<br />
<!--T:90--><br />
{| cellpadding=5<br />
| [[File:Grid rework.png|384px]]<br />
| The Sketcher grid has been reworked. The [[Sketcher_Grid|Grid]] tool has been added. Automatic rescalling of grid option has been added.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:91--><br />
{| cellpadding=5<br />
| [[File:Constraint widget.png|384px]]<br />
| The Sketcher Constraint widget has been reworked to simplify the UI.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7566 Pull request #7566]<br />
|-<br />
|}<br />
<br />
<!--T:78--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Element_Widget_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7567 Pull request #7567]<br />
|-<br />
|}<br />
<br />
<!--T:92--><br />
{| cellpadding=5<br />
| [[File:Sketcher grid relnotes 1.0.gif.gif|384px]]<br />
| A feature to automatically resize the grid according to the zoom level and other improvements were introduced.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:93--><br />
{| cellpadding=5<br />
| [[File:Sketcher layers relnotes 1.0.gif|384px]]<br />
| Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road.<br />
This PR also removes the rendering order options (no longer needed) and the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8716 Pull request #8716]<br />
|-<br />
|}<br />
<br />
=== Further Sketcher improvements === <!--T:35--><br />
<br />
<!--T:74--><br />
* The toolbar button for [[Sketcher_ConstrainSnellsLaw|Constrain refraction (Snell's law)]] has been removed. [https://github.com/FreeCAD/FreeCAD/commit/ef62fc3 Commit ef62fc3]<br />
* The [[Sketcher_Workbench#Dimensional_constraints|Dimensional Constraints]] and Quantity Spin Boxes now support the same math as [[Expressions|Expressions]] (Evaluated in place). [https://github.com/FreeCAD/FreeCAD/pull/7124 Pull Request #7124]<br />
* The toolbar buttons for [[Sketcher_SelectRedundantConstraints|Select redundant constraints]] and [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]] have been removed. [https://github.com/FreeCAD/FreeCAD/pull/7568 Pull request #7568]<br />
* The toolbar button for [[Sketcher_StopOperation|Stop operation]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7569 Pull request #7569]<br />
* The 'Edit controls' section in the Sketcher dialog has been made optional. [https://github.com/FreeCAD/FreeCAD/pull/7572 Pull request #7572]<br />
* The toolbar button for [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7603 Pull request #7603]<br />
* The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. [https://github.com/FreeCAD/FreeCAD/pull/7655 Pull request #7655]<br />
* [[Sketcher_ConstrainCoincident|Coincident constraint]] can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. [https://github.com/FreeCAD/FreeCAD/pull/7703 Pull request #7703]<br />
* [[Sketcher_CarbonCopy|Carbon copy]] if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. [https://github.com/FreeCAD/FreeCAD/pull/7688 Pull request #7688]<br />
* The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. [https://github.com/FreeCAD/FreeCAD/pull/8864 Pull request #8864]<br />
* [[Sketcher_Split|Split]] now supports more curves (ellipses, parabolas, hyperbolas and B-splines). [https://github.com/FreeCAD/FreeCAD/pull/6971 Pull request #6971]<br />
<br />
== Spreadsheet Workbench == <!--T:36--><br />
<br />
=== Further Spreadsheet improvements === <!--T:37--><br />
<br />
== TechDraw Workbench == <!--T:38--><br />
<br />
<!--T:68--><br />
{| cellpadding=5<br />
| [[File:TechDraw_SurfaceFinishExample_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_SurfaceFinishSymbol|SurfaceFinishSymbol]] tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing [[TechDraw_LeaderLine|LeaderLine]] tool can be used to properly refer oriented symbols to the edges of an object.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7227 Pull request #7227]<br />
|-<br />
| [[File:TechDraw_ComplexSection_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_ComplexSection|ComplexSection]] tool was added to allow for the creation of half, offset and aligned sections.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
|-<br />
|}<br />
<br />
=== Further TechDraw improvements === <!--T:39--><br />
<br />
<!--T:69--><br />
* Navigation modes have been updated to match those used in the 3D view. [https://github.com/FreeCAD/FreeCAD/pull/7081 Pull request #7081] and [https://github.com/FreeCAD/FreeCAD/pull/7107 Pull request #7107]<br />
* Bitmap hatching was fixed. [https://github.com/FreeCAD/FreeCAD/issues/6582 Issue #6582] and [https://github.com/FreeCAD/FreeCAD/pull/7121 Pull request #7121]<br />
* Support for adjustable gaps for extension lines of [[TechDraw_Preferences#Dimensions|dimensions]] was added. [https://github.com/FreeCAD/FreeCAD/pull/7133 Pull request #7133]<br />
* Multithreading was introduced for hidden line removal and face finding. [https://github.com/FreeCAD/FreeCAD/pull/7377 Pull request #7377]<br />
* The face detection algorithm was improved. [https://github.com/FreeCAD/FreeCAD/pull/7448 Pull request #7448]<br />
* The [[TechDraw_PrintAll|PrintAll]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_StackGroup|Four tools]] to control the stacking order of views were added. [https://github.com/FreeCAD/FreeCAD/issues/6012 Issue #6012] and [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_ActiveView|ActiveView]] now creates a screen capture instead of an SVG image. [https://github.com/FreeCAD/FreeCAD/pull/7471 Pull request #7471]<br />
* All Latin script templates have been converted to "plain svg". [https://github.com/FreeCAD/FreeCAD/pull/7472 Pull request #7472]<br />
* A preview was added to the task panel of the [[TechDraw_SectionView|SectionView]] tool. [https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
* Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.<br />
* The [[TechDraw_HoleShaftFit|HoleShaftFit]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8455 Pull request #8455]<br />
* The [[TechDraw_AxoLengthDimension|AxoLengthDimension]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8359 Pull request #8359]<br />
* 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
* The [[TechDraw_DimensionRepair|DimensionRepair]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
<br />
== Web == <!--T:40--><br />
<br />
== External workbenches == <!--T:41--><br />
<br />
=== A2plus === <!--T:42--><br />
<br />
=== Assembly3 === <!--T:43--><br />
<br />
=== Assembly4 === <!--T:44--><br />
<br />
=== FCGear === <!--T:45--><br />
<br />
=== Ship === <!--T:46--><br />
<br />
== Compilation == <!--T:47--><br />
<br />
<!--T:48--><br />
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.8 according to the [[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 development goals]].<br />
<br />
<!--T:49--><br />
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|macOS]].<br />
<br />
<!--T:50--><br />
The supported operating systems are:<br />
* Windows 7, 8, 10 and 11<br />
* Linux Ubuntu Focal Fossa (20.04) and newer<br />
* macOS: 10.12 Sierra or newer<br />
<br />
== Known Limitations == <!--T:51--><br />
<br />
===32bit Windows=== <!--T:52--><br />
<br />
<!--T:53--><br />
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.<br />
<br />
===Remote Desktop under Windows=== <!--T:54--><br />
<br />
<!--T:55--><br />
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver.<br />
Only if this doesn't help:<br />
* Download [https://downloads.fdossena.com/geth.php?r=mesa64-latest this] OpenGL library for 64bit Windows and extract it.<br />
* Rename the DLL file to ''opengl32sw.dll'' and copy it to the ''bin'' subfolder of FreeCAD's installation folder (overwrite the existing DLL there).<br />
<br />
===macOS: Start Workbench shows blank page === <!--T:70--><br />
<br />
<!--T:71--><br />
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|FreeCAD-1.0 → Preferences → Display}}.<br />
<br />
<br />
</translate><br />
[[Category:News{{#translation:}}]]<br />
[[Category:Documentation{{#translation:}}]]<br />
[[Category:Releases{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Release_notes_1.0&diff=1246002Release notes 1.02023-03-27T01:58:46Z<p>Uwestoehr: add a note</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{VeryImportantMessage|FreeCAD 1.0 is under development, there is no expected released date yet.}}<br />
<br />
<!--T:2--><br />
{{Message|<br />
Are features missing? Mention them in the [https://forum.freecadweb.org/viewtopic.php?f&#61;10&t&#61;69438 Release notes for v1.0] forum thread.<br />
<br />
<!--T:3--><br />
See [[Help_FreeCAD|Help FreeCAD]] for ways to contribute to FreeCAD.<br />
}}<br />
{{Message|All images on this page must use the {{FileName|_relnotes_1.0}} suffix}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:4--><br />
'''FreeCAD 1.0''' was released on '''DD MM 2023''', get it from the [[Download|Download]] page. This page lists all new features and changes.<br />
<br />
<!--T:5--><br />
Older FreeCAD release notes can be found in the [[Feature_list#Release_notes|Feature list]].<br />
<br />
<!--T:6--><br />
Placeholder for an eye-catching image selected by the admins from the [https://forum.freecadweb.org/viewforum.php?f=24 user showcases forum].<br />
<br />
== General == <!--T:7--><br />
<br />
== User interface == <!--T:8--><br />
<br />
<!--T:82--><br />
{|cellpadding=5<br />
| [[File:Navi_Cube_relnotes_1.0.gif]]<br />
| The navigation cube corner faces are now hexagonal and bigger, making them easier to click.<br />
The font, font size and button color (the arrows around the cube) can now also be changed in the [[Preferences_Editor#Navigation|preferences]].</br><br />
[https://github.com/FreeCAD/FreeCAD/pull/7876 Pull request #7876], [https://github.com/FreeCAD/FreeCAD/pull/8266 Pull request #8266] and [https://github.com/FreeCAD/FreeCAD/pull/8646 Pull request #8646].<br />
|}<br />
<br />
<!--T:85--><br />
{|cellpadding=5<br />
| [[File:Part_SectionCut_example_relnotes_1.0.gif|384px]]</br>Persistent section cut of intersecting objects.</br>Click on the image to see the animation.<br />
| The [[Part_SectionCut|Section Cut]] tool now allows to cut intersecting objects. This is useful for assemblies where intersections of touching objects can sometimes not be avoided due to numerical issues.<br>[https://github.com/FreeCAD/FreeCAD/pull/8252 Pull request #8252].<br />
|}<br />
<br />
<!--T:56--><br />
{| cellpadding=5<br />
| [[File:Measurement-Part_relnotes_1.0.png|384px]]<br />
| The display style of [[Part_Workbench#Measure|measurement]] results created using the [[Part_Workbench|Part]] or [[PartDesign_Workbench|PartDesign]] workbench can now be changed in the [[PartDesign_Preferences#Measure|preferences]].<br />
[https://github.com/FreeCAD/FreeCAD/pull/7148 Pull request #7148]<br />
|}<br />
<br />
<!--T:80--><br />
{| cellpadding=5<br />
| [[File:WbSelector_relnotes_1.0.png|384px]]<br />
| The workbench selector can now optionally be put in the menubar instead of the toolbar area.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7679 Pull request #7679]<br />
|}<br />
<br />
<br />
=== Further user interface improvements === <!--T:9--><br />
<br />
<!--T:57--><br />
* The button for [[Image:Std_UserEditModeDefault.svg|24px]] [[Std_UserEditMode|Edit Mode]] has been removed from the standard toolbar. It can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7570 Pull request #7570]<br />
* The buttons for [[Image:Std_Print.svg|24px]] [[Std_Print|Print]], [[Image:Std_Copy.svg|24px]] [[Std_Copy|Copy]], [[Image:Std_Paste.svg|24px]] [[Std_Paste|Paste]] and [[Image:Std_Cut.svg|24px]] [[Std_Cut|Cut]] have been removed from the standard toolbar. They can be re-added by [[Std_DlgCustomize|customizing]] your toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7571 Pull request #7571] and [https://github.com/FreeCAD/FreeCAD/commit/ea9a04e commit ea9a04e]<br />
* Commands to [[Std_StoreWorkingView|store]] and [[Std_RecallWorkingView|recall]] a temporary working view have been added. [https://github.com/FreeCAD/FreeCAD/pull/7525 Pull request #7525]<br />
* Value changes with the mouse wheel in 'input fields' (a widget type used to enter values in task panels, for example by [[Draft_Line|Draft Line]]) are disabled if the widget doesn't have the focus and the [[Fine-tuning#Mouse_related|ComboBoxWheelEventFilter]] parameter is enabled. This prevents unwanted value changes while scrolling, as was already the case for spin and combo boxes. [https://github.com/FreeCAD/FreeCAD/pull/7561 Pull request #7561]<br />
* It is now possible to set a default transparency for new [[Part_Module|Part]] or [[PartDesign_Workbench|PartDesign]] objects in the [[PartDesign_Preferences|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7103 Pull request #7103]<br />
* There is the new orbit style '''Free Turntable'''. It can either be enabled in the [[Preferences_Editor#Navigation|Preferences]] or by pressing the {{Button|[[File:NavigationCAD_dark.svg|16px]]}} button in the [[Status_bar|Status bar]] and then using the menu {{MenuCommand|Settings → Orbit}}). [https://github.com/FreeCAD/FreeCAD/pull/8048 Pull Request #8048]<br />
* The [[Std_SetAppearance|Std SetAppearance]] task panel now also has a button to set the Point Color property. [https://github.com/FreeCAD/FreeCAD/pull/7708 Pull request #7708]<br />
* A button has been added to switch the colors of the [[3D_view|3D view]] background gradient in the [[Preferences_Editor#Colors|Preferences]]. [https://github.com/FreeCAD/FreeCAD/pull/7155 Pull request #7155]<br />
* All transparency settings use now the uniform spin button step of 5%: One click on the button in a dialog or the [[Property_editor|property editor]] changes the transparency by 5%. Keep the button pressed to change several 5% steps at once. [https://github.com/FreeCAD/FreeCAD/pull/7723 Pull request #7723]<br />
* The Output window has been renamed to Report view for uniformity with the UI. [https://github.com/FreeCAD/FreeCAD/pull/7739 Pull Request #7739]<br />
<br />
== Core system and API == <!--T:10--><br />
<br />
=== Core === <!--T:11--><br />
<br />
<!--T:89--><br />
* The function '''cbrt(x)''' for cubic roots was added for use in [[Expressions#Exponential_and_logarithmic_functions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8629 Pull request #8629]<br />
* Many new [[Property#All_property_types|Properties]] are available for scripting. [https://github.com/FreeCAD/FreeCAD/pull/6717 Pull request #6717]<br />
* Added object creation functions {{Incode|vector}}, {{Incode|matrix}}, {{Incode|rotation}}, {{Incode|placement}} as well as matrix functions {{Incode|mrotate}}, {{Incode|mrotatex}}, {{Incode|mrotatey}}, {{Incode|mrotatez}}, {{Incode|mtranslate}} for use in [[Expressions|Expressions]]. [https://github.com/FreeCAD/FreeCAD/pull/8603 Pull request #8603].<br />
<br />
=== API === <!--T:12--><br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
==== New Python API ==== <!--T:13--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:58--><br />
* ''BSplineSurfacePy::scaleKnotsToBounds'': Scales the U and V knots lists to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7258 Pull request #7258] and [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
* ''BSplineCurvePy::scaleKnotsToBounds'': Scales the knots list to fit the specified bounds. [https://github.com/FreeCAD/FreeCAD/pull/7385 Pull request #7385]<br />
<br />
<!--T:14--><br />
* ''ShapeFix_EdgeConnectPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/4d4adb93 commit 4d4adb93]<br />
* ''ShapeFix_EdgePy'': Fixing invalid edge. [https://github.com/FreeCAD/FreeCAD/commit/4089cbfb commit 4089cbfb]<br />
* ''ShapeFix_FaceConnectPy'': Rebuilds connectivity between faces in shell. [https://github.com/FreeCAD/FreeCAD/commit/a0eb2e9d commit a0eb2e9d]<br />
* ''ShapeFix_FacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/b6cd635c commit b6cd635c]<br />
* ''ShapeFix_FixSmallFacePy'': Class for fixing operations on faces. [https://github.com/FreeCAD/FreeCAD/commit/4c2946c8 commit 4c2946c8]<br />
* ''ShapeFix_FixSmallSolidPy'': Fixing solids with small size. [https://github.com/FreeCAD/FreeCAD/commit/b70d8d37 commit b70d8d37]<br />
* ''ShapeFix_FreeBoundsPy'': Intended to output free bounds of the shape. [https://github.com/FreeCAD/FreeCAD/commit/1ee1aee1 commit 1ee1aee1]<br />
* ''ShapeFix_RootPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_ShapePy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/87db9dcc commit 87db9dcc]<br />
* ''ShapeFix_ShapeTolerancePy'': Modifies tolerances of sub-shapes (vertices, edges, faces). [https://github.com/FreeCAD/FreeCAD/commit/125d5b63 commit 125d5b63]<br />
* ''ShapeFix_ShellPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/f3e941a3 commit f3e941a3]<br />
* ''ShapeFix_SolidPy'': Root class for fixing operations. [https://github.com/FreeCAD/FreeCAD/commit/8d568793 commit 8d568793]<br />
* ''ShapeFix_SplitCommonVertexPy'': Class for fixing operations on shapes. [https://github.com/FreeCAD/FreeCAD/commit/4b44c54c commit 4b44c54c]<br />
* ''ShapeFix_SplitToolPy'': Tool for splitting and cutting edges. [https://github.com/FreeCAD/FreeCAD/commit/bbecc3f2 commit bbecc3f2]<br />
* ''ShapeFix_WireframePy'': Provides methods for fixing wireframe of shape. [https://github.com/FreeCAD/FreeCAD/commit/6843a461 commit 6843a461]<br />
* ''ShapeFix_WirePy'': Class for fixing operations on wires. [https://github.com/FreeCAD/FreeCAD/commit/94f6279a commit 94f6279a]<br />
* ''ShapeFix_WireVertexPy'': Fixing disconnected edges in the wire. [https://github.com/FreeCAD/FreeCAD/commit/8c6ffc99 commit 8c6ffc99]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
==== Removed Python API ==== <!--T:59--><br />
<br />
<!--T:60--><br />
* ''FreeCAD.EndingAdd'': replaced by ''FreeCAD.addImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
* ''FreeCAD.EndingGet'': replaced by ''FreeCAD.getImportType''. [https://github.com/FreeCAD/FreeCAD/pull/7167 Pull request #7167]<br />
<br />
</translate><br />
</div><br />
<translate><br />
<br />
== Addon Manager == <!--T:16--><br />
<br />
== Arch Workbench == <!--T:17--><br />
<br />
<!--T:84--><br />
* Several edit mode issues have been fixed and the [[Tree_view|Tree view]] context menus for Arch objects have been improved. Objects that can be edited now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/8122 Pull request #8122]<br />
<br />
=== Further Arch improvements === <!--T:61--><br />
<br />
<!--T:62--><br />
* [[Arch_Profile|Arch Profile]] objects now support modification of the profile type after creation. [https://github.com/FreeCAD/FreeCAD/pull/7217 Pull request #7217]<br />
* The Terrain of an [[Arch_Site|Arch Site]] can now also be a solid. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* An [[Arch_Site|Arch Site]] no longer shows a phantom representation of the objects in its Group. [https://github.com/FreeCAD/FreeCAD/pull/8444 Pull request #8444]<br />
* [[Arch_SectionPlane|Arch SectionPlane]] objects now handle non-solid objects the same as solid objects. [https://github.com/FreeCAD/FreeCAD/pull/8688 Pull request #8688]<br />
<br />
== Draft Workbench == <!--T:18--><br />
<br />
<!--T:63--><br />
* The inaccuracy of [[Draft_Snap_Near|Draft Snap Near]] when snapping to curves was fixed. In addition, [[Draft_Snap_Perpendicular|Draft Snap Perpendicular]] can now also snap to faces and find multiple points. To snap to a vertex (e.g. a [[Draft_Point|Draft Point]]) [[Draft_Snap_Endpoint|Draft Snap Endpoint]] must now be used instead of [[Draft_Snap_Near|Draft Snap Near]]. [https://github.com/FreeCAD/FreeCAD/pull/7132 Pull request #7132]<br />
* To make working with [[Draft_Layer|layers]] easier their drag and drop behavior was modified. If you drop an object from a [[Std_Group|Std Group]], or a group-like object such as an [[Arch_BuildingPart|Arch BuildingPart]], on a layer, it is no longer removed from the group, and vice versa. This works without holding down the {{KEY|Ctrl}} key. [https://github.com/FreeCAD/FreeCAD/pull/7462 Pull request #7462]<br />
* The [[Draft_PointArray|Draft PointArray]] command now supports more point object types. Any object with a shape and vertices, as well as a [[Mesh_Workbench|mesh]] and a [[Points_Workbench|point cloud]] can be used. [https://github.com/FreeCAD/FreeCAD/pull/7597 Pull request #7597]<br />
* The [[Tree_view|Tree view]] context menus for Draft objects have been improved. Objects that can be edited with the [[Draft_Edit|Draft Edit]] command, or that have a dedicated edit solution, now have an {{MenuCommand|Edit}} option in that menu. The {{MenuCommand|Set colors}} option was removed for objects without a face or that can only have a single face. [https://github.com/FreeCAD/FreeCAD/pull/7970 Pull request #7970]<br />
* The properties of Draft annotation objects have been unified. [[Draft_Text|Draft Text]], [[Draft_Dimension|Draft Dimension]] and [[Draft_Label|Draft Label]] objects now all have a Font Name, a Font Size and a Text Color property. The Display Mode options have been made consistent as well and are now: Screen and World. [https://github.com/FreeCAD/FreeCAD/issues/7861 Issue #7861] and [https://github.com/FreeCAD/FreeCAD/pull/8081 Pull request #8081]<br />
* Undo/Redo did not work properly for the Draft modification commands on Windows. [https://github.com/FreeCAD/FreeCAD/pull/8267 Pull request #8267]<br />
<br />
=== Further Draft improvements === <!--T:19--><br />
<br />
<!--T:73--><br />
* Several [[Draft_PathArray|Draft PathArray]] related issues have been fixed. [https://github.com/FreeCAD/FreeCAD/pull/7506 Pull request #7506] and [https://github.com/FreeCAD/FreeCAD/pull/7662 Pull request #7662]<br />
* The [[Draft_Edit|Draft Edit]] command has received several improvements. For [[Draft_Wire|wires]], [[Draft_BSpline|B-splines]] and [[Draft BezCurve|Bézier curves]] a Close/Open option has been added to the edge context menu. For B-splines and Bézier curves a Reverse option has been added to the same menu as well. The task panels have been cleaned up. [https://github.com/FreeCAD/FreeCAD/pull/7527 Pull request #7527] and [https://github.com/FreeCAD/FreeCAD/pull/7541 Pull request #7541]<br />
* The [[Draft_Snap|Draft Snap]] toolbar was changed to a standard toolbar. Keyboard shortcuts can now be assigned to snaps. But using them during a command only works if none of the input boxes in the task panel has the focus as they 'catch' the so-called in-command shortcuts. [https://github.com/FreeCAD/FreeCAD/pull/7656 Pull request #7656]<br />
* In the task panel of the [[Draft_SetStyle|Draft SetStyle]] command the "Texts/dims" button has been replaced by the "Annotations" button. Pressing this button will process all annotations, including [[Draft_Label|Draft Labels]]. Several minor additional issues were also fixed. [https://github.com/FreeCAD/FreeCAD/pull/8190 Pull request #8190], [https://github.com/FreeCAD/FreeCAD/pull/8195 Pull request #8195] and [https://github.com/FreeCAD/FreeCAD/pull/8196 Pull request #8196]<br />
* Several [[Draft_AnnotationStyleEditor|Draft AnnotationStyleEditor]] bugs have been fixed and a separate Text color button has been added. [https://github.com/FreeCAD/FreeCAD/pull/8207 Pull request #8207]<br />
* Start and End Offset properties have been added to [[Draft_PathArray|Draft PathArray]] objects. [https://github.com/FreeCAD/FreeCAD/pull/8295 Pull request #8295]<br />
* A Count property has been added to the arrays that lacked this property: the non-Link versions of [[Draft_OrthoArray|Draft OrthoArray]], [[Draft_PolarArray|Draft PolarArray]] and [[Draft_CircularArray|Draft CircularArray]]. [https://github.com/FreeCAD/FreeCAD/pull/8433 Pull request #8433]<br />
<br />
== FEM Workbench == <!--T:20--><br />
<br />
<!--T:86--><br />
{| cellpadding=5<br />
| [[File:FEM_PostFilterContours_relnotes_1.0.png|384px]]</br>Iso-contours, depicting the y-component of the absolute magnetic</br>flux density in and around a copper wire that is flown through by</br>electric current at a frequency of 100 kHz.</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| There is the new [[Image:FEM_PostFilterContours.svg|24px]] [[FEM_PostFilterContours|Contours filter]] filter that allows to draw iso-lines or iso-contours. Iso-contours are connected mesh nodes that have the same result field value. A typical example are electric field lines.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8462 Pull request #8462]<br />
|}<br />
<br />
<!--T:64--><br />
{| cellpadding=5<br />
| [[File:FEM_Elmer-Multithread_relnotes_1.0.png|384px]]</br>Simulation result (of flowing water being heated) where 8 mesh regions</br>are visible (one for every CPU core used).<br />
| It is now possible to run the solver [[FEM_SolverElmer|Elmer]] using multiple CPU cores. For more info about the caveats, see [https://forum.freecadweb.org/viewtopic.php?p=610617#p610617 this forum post]<br />
[https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
|}<br />
<br />
<!--T:87--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic2D_relnotes_1.0.png|300px]]</br>Simulation result of the imaginary part of the current density in</br>a crucible that was heated electrically by a surrounding coil.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 16 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic2D.svg|24px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]] was added. With this it is possible to perform electromagnetic simulations in 2D.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8355 Pull request #8355]<br />
|}<br />
<br />
<!--T:88--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationMagnetodynamic_relnotes_1.0.png|384px]]</br>Simulation result of the imaginary part of the magnetic flux density in</br>and around a copper wire that is flown through by electric current at</br>a frequency of 100 kHz.</br>This model is available via the [[FEM_Examples|FEM Examples]].</br>For more info about this model, see section 14 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationMagnetodynamic.svg|24px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]] was added. With this it is possible to perform electromagnetic simulations.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8380 Pull request #8380]<br />
|}<br />
<br />
<!--T:95--><br />
{| cellpadding=5<br />
| [[File:FEM_EquationDeformation_relnotes_1.0.png|384px]]</br>Simulation result of an iron U-wire that is deformed</br>by pressing the ends of the U together.</br>For more info about this model, see section 8 of the [https://www.nic.funet.fi/index/elmer/doc/ElmerTutorials.pdf Elmer Tutorials].<br />
| The [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]] was added. With this it is possible to perform nonlinear elasticity analyses (deformation).<br />
[https://github.com/FreeCAD/FreeCAD/pull/8981 Pull request #8981]<br />
|}<br />
<br />
=== Further FEM improvements === <!--T:21--><br />
<br />
<!--T:65--><br />
* When performing analyses using the [[FEM_SolverCalculixCxxtools|CalculiX solver]], there is now also a [[FEM_PostPipelineFromResult|results pipeline]] created to visualize the results. [https://github.com/FreeCAD/FreeCAD/pull/8525 Pull request #8525] and [https://github.com/FreeCAD/FreeCAD/pull/8903 Pull request #8903]<br />
* The [[Image:FEM_ConstraintInitialPressure.svg|24px]] [[FEM_ConstraintInitialPressure|initial pressure constraint]] was added to set the initial internal pressure of fluids. [https://github.com/FreeCAD/FreeCAD/pull/7364 Pull request #7364]<br />
* The [[Image:FEM_ConstraintCurrentDensity.svg|24px]] [[FEM_ConstraintCurrentDensity|current density constraint]] was added to set current densities for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8348 Pull request #8348]<br />
* The [[Image:FEM_ConstraintMagnetization.svg|24px]] [[FEM_ConstraintMagnetization|magnetization constraint]] was added to set magnetizations for bodies and faces. [https://github.com/FreeCAD/FreeCAD/pull/8393 Pull request #8393]<br />
* The [[Image:FEM_ConstraintFlowVelocity.svg|24px]] [[FEM_ConstraintFlowVelocity|flow velocity constraint]] and [[Image:FEM_ConstraintInitialFlowVelocity.svg|24px]] [[FEM_ConstraintInitialFlowVelocity|initial flow velocity constraint]] were completely rewritten. It is now also possible to specify a velocity via a math formula (to define a velocity profile). [https://github.com/FreeCAD/FreeCAD/pull/8963 Pull request #8963] and [https://github.com/FreeCAD/FreeCAD/pull/8964 Pull request #8964]</br>'''Note:''' This is a breaking change. Analyses with existing flow velocity and initial flow velocity constraints will not work anymore. You have to create new flow velocity constraints in the analysis to make existing analyses work.</br>'''Also note:''' until FreeCAD 0.20.3 the results of the flow solver were wrong (fluid density and viscosity were treated a factor 1000 too high). Therefore the necessary recreation of the velocity constraint also assures the results will be correct. <br />
* The [[Image:FEM_ConstraintBodyHeatSource.svg|24px]] [[FEM_ConstraintBodyHeatSource|body heat source constraint]] has now a task panel and it is possible to set the heat for several bodies or to use several constraints for different bodies in one analysis. [https://github.com/FreeCAD/FreeCAD/pull/7367 Pull request #7367]<br />
* The [[Image:FEM_ConstraintSpring.svg|24px]] [[FEM_ConstraintSpring|spring constraint]] was not used by any solver. Now it can be used by the [[FEM_SolverElmer|Elmer]] solver via the equations [[FEM_EquationDeformation|Deformation]] and [[FEM_EquationElasticity|Elasticity]]. [https://github.com/FreeCAD/FreeCAD/pull/9005 Pull request #9005]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionCylinder.svg|24px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8735 Pull request #8735]<br />
* The result mesh cut function [[Image:FEM_PostCreateFunctionBox.svg|24px]] [[FEM_PostCreateFunctionBox|Filter function box]] was added. [https://github.com/FreeCAD/FreeCAD/pull/8825 Pull request #8825]<br />
* It is now possible to open (and this way visualize) *.pvtu files (partitioned VTK unstructured grid data). A *.pvtu file is also the result of an [[FEM_SolverElmer|Elmer]] simulation, when more than one CPU core is used for calculations. [https://github.com/FreeCAD/FreeCAD/pull/7159 Pull request #7159]<br />
* Critical Strain Ratio has been added to the VTK result pipeline. It gives an indication of ductile rupture for materials with a "MaterialMechanicalNonlinear" object. [https://github.com/FreeCAD/FreeCAD/pull/7467 Pull request #7467]<br />
* [[Image:FEM_FemMesh2Mesh.svg|24px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]] has the new parameter ''scale'' to define the scale of deformed mesh using Python. [https://forum.freecadweb.org/viewtopic.php?f=18&t=71936 Forum thread] and [https://github.com/FreeCAD/FreeCAD/pull/7715 Pull request #7715]<br />
* New example files for the following equations are available via the [[FEM_Examples|FEM Examples]]: [[FEM_EquationDeformation|Deformation]], [[FEM_EquationFlow|Flow]], [[FEM_EquationFlux|Flux]], [[FEM_EquationHeat|Heat]], [[FEM_EquationMagnetodynamic|Magnetodynamic]] and [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D]]. Pull requests [https://github.com/FreeCAD/FreeCAD/pull/8550 #8550], [https://github.com/FreeCAD/FreeCAD/pull/8569 #8569], [https://github.com/FreeCAD/FreeCAD/pull/8579 #8579], [https://github.com/FreeCAD/FreeCAD/pull/8597 #8597], [https://github.com/FreeCAD/FreeCAD/pull/8630 #8630] and [https://github.com/FreeCAD/FreeCAD/pull/9004 #9004].<br />
* New material card for carbon dioxide and a titanium alloy. [https://github.com/FreeCAD/FreeCAD/pull/8332 Pull request #8332] and [https://github.com/FreeCAD/FreeCAD/pull/8636 Pull request #8636]<br />
<br />
== Export == <!--T:22--> <br />
<br />
== Mesh == <!--T:23--><br />
<br />
=== Further Mesh improvements === <!--T:24--><br />
<br />
<!--T:75--><br />
* Support to add transparencies to a mesh. [https://forum.freecadweb.org/viewtopic.php?f=22&t=72531 Forum thread] and [https://github.com/FreeCAD/FreeCAD/commit/f88305e Commit f88305e]<br />
<br />
== OpenSCAD Workbench == <!--T:25--><br />
<br />
== Part Workbench == <!--T:26--><br />
<br />
=== Further Part improvements === <!--T:27--><br />
<br />
<!--T:94--><br />
* The [[Part_PointsFromMesh|Part PointsFromMesh]] command has been extended to accept any geometric object as input. [https://github.com/FreeCAD/FreeCAD/pull/8730 Pull request #8730]<br />
<br />
== PartDesign Workbench == <!--T:28--><br />
<br />
<!--T:76--><br />
{| cellpadding=5<br />
| [[Image:PD_Counterdrill_relnotes_1.0.png|384px]]</br>A counterdrill hole.<br />
| The [[PartDesign_Hole|Hole]] dialog supports the screw head type ''Counterdrill''.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7562 Pull request #7562]<br />
|-<br />
|}<br />
<br />
=== Further PartDesign improvements === <!--T:29--><br />
<br />
<!--T:77--><br />
* In the [[PartDesign_Hole|Hole]] dialog, the deprecated screw head types (cheese head, cap screw etc.) have been removed. They were deprecated since FreeCAD 0.19. Holes using these types are transformed to custom countersinks/counterbore holes with the diameter and depth used by the types. [https://github.com/FreeCAD/FreeCAD/pull/7654 Pull request #7654]<br />
* In the [[PartDesign_AdditiveLoft|Additive Loft]] and [[PartDesign_SubtractiveLoft|Subtractive Loft]] dialogs, the previously non-functional option '''Closed''' does now create a closed loft (like a ring). [https://github.com/FreeCAD/FreeCAD/pull/8748 Pull request #8748]<br />
* The [[Sketcher_ValidateSketch|Validate sketch]] command was added to Helper toolbar. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The unusable [[Sketcher_LeaveSketch|Leave sketch]] and [[Sketcher_ViewSketch|View sketch]] commands were removed from the menu. The [[Sketcher_EditSketch|Edit sketch]], [[Sketcher_MergeSketches|Merge sketches]] and [[Sketcher_MirrorSketch|Mirror sketch]] commands were added to the menu. [https://github.com/FreeCAD/FreeCAD/pull/7700 Pull request #7700]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] has new properties to change the tooth length. This now allows adjustments for certain types of interferences and to use the profile to create [https://en.wikipedia.org/wiki/Spline_(mechanical) involute splines] too. [https://github.com/FreeCAD/FreeCAD/pull/8184 Pull request #8184]<br />
* The [[PartDesign_InvoluteGear|involute gear profile]] now offers profile shifting. [https://github.com/FreeCAD/FreeCAD/issues/5618 Issue #5618] and [https://github.com/FreeCAD/FreeCAD/pull/8934 Pull request #8934]<br />
<br />
== Path Workbench == <!--T:30--><br />
<br />
<!--T:31--><br />
* Camotics integration. If camotics (version 1.2.2 or later) is installed, a new icon will be added to the Path toolbar. Select a Path Job and press the button to open the Camotics dialog. Then drag the slider to generate a simulated solid at any point in the job. You can also launch the full camotics application to run the animated simulaton. This results in a silent post-processing of the job and creation of a camotics project file. [https://github.com/FreeCAD/FreeCAD/pull/6637 Pull request #6637]<br />
<br />
<!--T:32--><br />
* Additional substitution strings for automatic output naming. If output is being split into multiple files, the filenames can automatically substitute the toolcontroller label, WCS, or operation label. This is in addition to the other existing substitution strings like date, job name, etc.<br />
<br />
<!--T:66--><br />
* Implemented Chipbreaking option for peck style drill cycles. Chipbreaking emits a G73 cycle which causes the control to make a very small retraction move to break the chip without fully retracting the bit from the hole. G73 is supported natively by LinuxCNC. Some other postprocessors will have to interpret the G73 and emit control appropriate codes or decompose the retraction into G1/G0 moves. Postprocessor support for G73 decomposition has been added to the "refactored" postprocessors.[https://github.com/FreeCAD/FreeCAD/pull/7469 Pull request #7469]<br />
<br />
== Plot module == <!--T:33--><br />
<br />
== Sketcher Workbench == <!--T:34--><br />
<br />
<!--T:81--><br />
{| cellpadding=5<br />
| [[File:Constrain B-spline knots_relnotes_1.0.gif|384px]]</br>Dragging of B-spline knots.</br>Click on the image to see the animation.<br />
| B-spline knots can now be dragged around and constrained like any other sketch point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7484 Pull request #7484]<br />
|-<br />
|}<br />
<br />
<!--T:67--><br />
{| cellpadding=5<br />
| [[File:sketcher-move-piece_relnotes_1.0.gif|384px]]</br>Dragging of a B-spline.</br>Click on the image if the animation does not start.<br />
| Dragging a B-spline now only moves the part between knots.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7110 Pull request #7110]<br />
|-<br />
|}<br />
<br />
<!--T:83--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Join_Curves_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The [[Sketcher_JoinCurves|Join curves]] tool has been added. It can combine multiple curves into a single B-spline.<br />
[https://github.com/FreeCAD/FreeCAD/pull/6507 Pull request #6507]<br />
|-<br />
|}<br />
<br />
<!--T:72--><br />
{| cellpadding=5<br />
| [[File:Sketcher_BackEdit_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| Sketches can now be seamlessly edited from the front or back. When working from the back, vertices (and all geometries and constraints) are equally selectable and the section view is switched automatically.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7417 Pull request #7417]<br />
|-<br />
|}<br />
<br />
<!--T:90--><br />
{| cellpadding=5<br />
| [[File:Grid rework.png|384px]]<br />
| The Sketcher grid has been reworked. The [[Sketcher_Grid|Grid]] tool has been added. Automatic rescalling of grid option has been added.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:91--><br />
{| cellpadding=5<br />
| [[File:Constraint widget.png|384px]]<br />
| The Sketcher Constraint widget has been reworked to simplify the UI.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7566 Pull request #7566]<br />
|-<br />
|}<br />
<br />
<!--T:78--><br />
{| cellpadding=5<br />
| [[File:Sketcher_Element_Widget_relnotes_1.0.gif|384px]]</br>Click on the image to see the animation.<br />
| The Element widget has been reworked to simplify the UI and enable simpler selection of the different parts of each geometry: Edge, start point, end point and mid point.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7567 Pull request #7567]<br />
|-<br />
|}<br />
<br />
<!--T:92--><br />
{| cellpadding=5<br />
| [[File:Sketcher grid relnotes 1.0.gif.gif|384px]]<br />
| A feature to automatically resize the grid according to the zoom level and other improvements were introduced.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8473 Pull request #8473]<br />
|-<br />
|}<br />
<br />
<!--T:93--><br />
{| cellpadding=5<br />
| [[File:Sketcher layers relnotes 1.0.gif|384px]]<br />
| Basic visual layers functionality was introduced, for now only 3 hardcoded layers are supported. Expect further improvements down the road.<br />
This PR also removes the rendering order options (no longer needed) and the "Edit controls" widget from the task panel as all it's contents have been moved to other places or removed.<br />
[https://github.com/FreeCAD/FreeCAD/pull/8716 Pull request #8716]<br />
|-<br />
|}<br />
<br />
=== Further Sketcher improvements === <!--T:35--><br />
<br />
<!--T:74--><br />
* The toolbar button for [[Sketcher_ConstrainSnellsLaw|Constrain refraction (Snell's law)]] has been removed. [https://github.com/FreeCAD/FreeCAD/commit/ef62fc3 Commit ef62fc3]<br />
* The [[Sketcher_Workbench#Dimensional_constraints|Dimensional Constraints]] and Quantity Spin Boxes now support the same math as [[Expressions|Expressions]] (Evaluated in place). [https://github.com/FreeCAD/FreeCAD/pull/7124 Pull Request #7124]<br />
* The toolbar buttons for [[Sketcher_SelectRedundantConstraints|Select redundant constraints]] and [[Sketcher_SelectConflictingConstraints|Select conflicting constraints]] have been removed. [https://github.com/FreeCAD/FreeCAD/pull/7568 Pull request #7568]<br />
* The toolbar button for [[Sketcher_StopOperation|Stop operation]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7569 Pull request #7569]<br />
* The 'Edit controls' section in the Sketcher dialog has been made optional. [https://github.com/FreeCAD/FreeCAD/pull/7572 Pull request #7572]<br />
* The toolbar button for [[Sketcher_SelectElementsWithDoFs|Select unconstrained DoF]] has been removed. [https://github.com/FreeCAD/FreeCAD/pull/7603 Pull request #7603]<br />
* The Sketcher toolbar has been split in two: 'Sketcher-edit-mode' and 'Sketcher' (i.e. 'not edit mode'). The Sketcher toolbars that are only for edit-mode are hidden in non-edit-mode, and those only for non-edit-mode are hidden in edit-mode. The Structure toolbar is also hidden in Sketcher. [https://github.com/FreeCAD/FreeCAD/pull/7655 Pull request #7655]<br />
* [[Sketcher_ConstrainCoincident|Coincident constraint]] can now act as a concentric constraint when selecting 2 or more circles, arcs, ellipses or arcs of ellipses. [https://github.com/FreeCAD/FreeCAD/pull/7703 Pull request #7703]<br />
* [[Sketcher_CarbonCopy|Carbon copy]] if possible now uses constraint names in the expressions it creates instead of an index based reference, making it more reliable. [https://github.com/FreeCAD/FreeCAD/pull/7688 Pull request #7688]<br />
* The Sketcher 'Solver Message' taskbox has been simplified. The auto-remove-redundant checkbox has been moved to the Constraint taskbox setting button menu. The auto-update checkbox has been moved to the menu of the update button. [https://github.com/FreeCAD/FreeCAD/pull/8864 Pull request #8864]<br />
* [[Sketcher_Split|Split]] now supports more curves (ellipses, parabolas, hyperbolas and B-splines). [https://github.com/FreeCAD/FreeCAD/pull/6971 Pull request #6971]<br />
<br />
== Spreadsheet Workbench == <!--T:36--><br />
<br />
=== Further Spreadsheet improvements === <!--T:37--><br />
<br />
== TechDraw Workbench == <!--T:38--><br />
<br />
<!--T:68--><br />
{| cellpadding=5<br />
| [[File:TechDraw_SurfaceFinishExample_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_SurfaceFinishSymbol|SurfaceFinishSymbol]] tool was added to allow for the creation of surface finish symbols describing roughness, lay and waviness, but also denoting the type of surface treatment. It supports both ISO and ASME styles. As shown in the image, the existing [[TechDraw_LeaderLine|LeaderLine]] tool can be used to properly refer oriented symbols to the edges of an object.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7227 Pull request #7227]<br />
|-<br />
| [[File:TechDraw_ComplexSection_relnotes_1.0.png|250px]]<br />
| The [[TechDraw_ComplexSection|ComplexSection]] tool was added to allow for the creation of half, offset and aligned sections.<br />
[https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
|-<br />
|}<br />
<br />
=== Further TechDraw improvements === <!--T:39--><br />
<br />
<!--T:69--><br />
* Navigation modes have been updated to match those used in the 3D view. [https://github.com/FreeCAD/FreeCAD/pull/7081 Pull request #7081] and [https://github.com/FreeCAD/FreeCAD/pull/7107 Pull request #7107]<br />
* Bitmap hatching was fixed. [https://github.com/FreeCAD/FreeCAD/issues/6582 Issue #6582] and [https://github.com/FreeCAD/FreeCAD/pull/7121 Pull request #7121]<br />
* Support for adjustable gaps for extension lines of [[TechDraw_Preferences#Dimensions|dimensions]] was added. [https://github.com/FreeCAD/FreeCAD/pull/7133 Pull request #7133]<br />
* Multithreading was introduced for hidden line removal and face finding. [https://github.com/FreeCAD/FreeCAD/pull/7377 Pull request #7377]<br />
* The face detection algorithm was improved. [https://github.com/FreeCAD/FreeCAD/pull/7448 Pull request #7448]<br />
* The [[TechDraw_PrintAll|PrintAll]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_StackGroup|Four tools]] to control the stacking order of views were added. [https://github.com/FreeCAD/FreeCAD/issues/6012 Issue #6012] and [https://github.com/FreeCAD/FreeCAD/pull/7460 Pull request #7460]<br />
* [[TechDraw_ActiveView|ActiveView]] now creates a screen capture instead of an SVG image. [https://github.com/FreeCAD/FreeCAD/pull/7471 Pull request #7471]<br />
* All Latin script templates have been converted to "plain svg". [https://github.com/FreeCAD/FreeCAD/pull/7472 Pull request #7472]<br />
* A preview was added to the task panel of the [[TechDraw_SectionView|SectionView]] tool. [https://github.com/FreeCAD/FreeCAD/pull/7658 Pull request #7658]<br />
* Deprecated DrawViewPart functions were removed: replaceCenterLine, replaceCosmeticEdge, replaceCosmeticVertex and replaceGeomFormat.<br />
* The [[TechDraw_HoleShaftFit|HoleShaftFit]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8455 Pull request #8455]<br />
* The [[TechDraw_AxoLengthDimension|AxoLengthDimension]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8359 Pull request #8359]<br />
* 3D dimensions can now be created in the same way as 2D dimensions (apart from the fact that the geometry has to be selected in a 3D view). This eliminates the need to link them manually to 3D geometry. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
* The [[TechDraw_DimensionRepair|DimensionRepair]] tool was added. [https://github.com/FreeCAD/FreeCAD/pull/8141 Pull request #8141]<br />
<br />
== Web == <!--T:40--><br />
<br />
== External workbenches == <!--T:41--><br />
<br />
=== A2plus === <!--T:42--><br />
<br />
=== Assembly3 === <!--T:43--><br />
<br />
=== Assembly4 === <!--T:44--><br />
<br />
=== FCGear === <!--T:45--><br />
<br />
=== Ship === <!--T:46--><br />
<br />
== Compilation == <!--T:47--><br />
<br />
<!--T:48--><br />
Since this release FreeCAD can only be compiled using Qt 5.x and Python 3.x. The lowest supported Python version is 3.8 according to the [[FreeCAD_1.0_Development_Cycle|FreeCAD 1.0 development goals]].<br />
<br />
<!--T:49--><br />
To compile FreeCAD see the instructions for [[Compile_on_Windows|Windows]], [[Compile_on_Linux|Linux]] and [[Compile_on_MacOS|macOS]].<br />
<br />
<!--T:50--><br />
The supported operating systems are:<br />
* Windows 7, 8, 10 and 11<br />
* Linux Ubuntu Focal Fossa (20.04) and newer<br />
* macOS: 10.12 Sierra or newer<br />
<br />
== Known Limitations == <!--T:51--><br />
<br />
===32bit Windows=== <!--T:52--><br />
<br />
<!--T:53--><br />
Since FreeCAD 0.19 we no longer officially support 32bit Windows. FreeCAD might work on these systems, but no support is given.<br />
<br />
===Remote Desktop under Windows=== <!--T:54--><br />
<br />
<!--T:55--><br />
Depending on the OpenGL graphics capabilities of a computer, it might be that one encounters a crash when running FreeCAD via remote desktop. To fix this upgrade your OpenGL driver.<br />
Only if this doesn't help:<br />
* Download [https://downloads.fdossena.com/geth.php?r=mesa64-latest this] OpenGL library for 64bit Windows and extract it.<br />
* Rename the DLL file to ''opengl32sw.dll'' and copy it to the ''bin'' subfolder of FreeCAD's installation folder (overwrite the existing DLL there).<br />
<br />
===macOS: Start Workbench shows blank page === <!--T:70--><br />
<br />
<!--T:71--><br />
If the [[Start_Workbench|Start Workbench]] shows only a blank page, you must enable the option '''Use software OpenGL''' in the menu {{MenuCommand|FreeCAD-1.0 → Preferences → Display}}.<br />
<br />
<br />
</translate><br />
[[Category:News{{#translation:}}]]<br />
[[Category:Documentation{{#translation:}}]]<br />
[[Category:Releases{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_CompMechEquations&diff=1246001FEM CompMechEquations2023-03-27T01:00:32Z<p>Uwestoehr: correct docnav</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
{{GuiCommand<br />
|Name=FEM CompMechEquations<br />
|MenuLocation=<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=1.0<br />
|SeeAlso=<br />
}}<br />
<br />
==Description==<br />
<br />
'''FEM CompEmEquations''' is an icon button in the FEM Equations toolbar that groups electromagnetic equations. Click on the down arrow to its right to expand the icons below it and select a tool.<br />
<br />
==Equations==<br />
<br />
You can choose these equations:<br />
* [[Image:FEM_EquationElasticity.svg|24px]] [[FEM_EquationElasticity|Elasticityequation]]: Equation to perform linear mechanical analyses.<br />
* [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]]: Equation to perform nonlinear mechanical (deformations) analyses. {{Version|1.0}}<br />
<br />
<br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Workbench&diff=1246000FEM Workbench2023-03-27T00:58:26Z<p>Uwestoehr: update order</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:142--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
<!--T:156--><br />
[[Image:Workbench_FEM.svg|thumb|128px|FEM workbench icon]]<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
== Introduction == <!--T:64--><br />
<br />
<!--T:1--><br />
The [[FEM_Workbench|FEM Workbench]] provides a modern [https://en.wikipedia.org/wiki/Finite_element_analysis finite element analysis] (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).<br />
<br />
</translate><br />
[[Image:FemWorkbench.jpg|300px]]<br />
<translate><br />
<br />
== Workflow == <!--T:65--><br />
<br />
<!--T:20--><br />
The steps to carry out a finite element analysis are:<br />
# Preprocessing: setting up the analysis problem.<br />
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.<br />
## Creating an analysis.<br />
### Adding simulation constraints such as loads and fixed supports to the geometric model.<br />
### Adding materials to the parts of the geometric model.<br />
### Creating a finite element mesh for the geometrical model, or importing it from a different application.<br />
# Solving: running an external solver from within FreeCAD.<br />
# Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.<br />
<br />
<!--T:33--><br />
The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.<br />
<br />
</translate><br />
[[Image:FEM_Workbench_workflow.svg|600px]]<br />
<translate><br />
<br />
<!--T:146--><br />
{{Caption|Workflow of the FEM Workbench; the workbench calls two external programs to perform meshing of a solid object, and perform the actual solution of the finite element problem}}<br />
<br />
== Menu: Model == <!--T:66--><br />
<br />
<!--T:79--><br />
* [[Image:FEM_Analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next. <br />
<br />
=== Materials === <!--T:67--><br />
<br />
<!--T:80--><br />
* [[Image:FEM_MaterialSolid.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a solid material from the database.<br />
<br />
<!--T:81--><br />
* [[Image:FEM_MaterialFluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a fluid material from the database.<br />
<br />
<!--T:82--><br />
* [[Image:FEM_MaterialMechanicalNonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you add a nonlinear mechanical material model.<br />
<br />
<!--T:154--><br />
* [[Image:FEM_MaterialReinforced.svg|32px]] [[FEM_MaterialReinforced|Reinforced material (concrete)]]: Lets you select reinforced materials consisting of a matrix and a reinforcement from the database.<br />
<br />
<!--T:83--><br />
* [[Image:FEM_MaterialEditor.svg|32px]] [[FEM_MaterialEditor|Material editor]]: Lets you open the material editor to edit materials.<br />
<br />
=== Element Geometry === <!--T:68--><br />
<br />
<!--T:84--><br />
* [[Image:FEM_ElementGeometry1D.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]: Used to define cross sections for beam elements.<br />
<br />
<!--T:85--><br />
* [[Image:FEM_ElementRotation1D.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]: Used to rotate cross sections of beam elements.<br />
<br />
<!--T:86--><br />
* [[Image:FEM_ElementGeometry2D.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]: Used to define shell element thickness.<br />
<br />
<!--T:87--><br />
* [[Image:FEM_ElementFluid1D.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]: Used to create fluid section element for pneumatic and hydraulic networks.<br />
<br />
=== Electromagnetic Constraints === <!--T:69--><br />
<br />
<!--T:176--><br />
* [[Image:FEM_CompEmConstraints.png|48px]] [[FEM_CompEmConstraints|Electromagnetic constraints]]: This is an icon menu in the FEM Constraints toolbar that holds the following constraints:<br />
<br />
<!--T:88--><br />
:* [[Image:FEM_ConstraintElectrostaticPotential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Constraint electrostatic potential]]: Used to define electrostatic potential.<br />
<br />
<!--T:177--><br />
:* [[Image:FEM_ConstraintCurrentDensity.svg|32px]] [[FEM_ConstraintCurrentDensity|Constraint current density]]: Used to define a current density. {{Version|1.0}}<br />
<br />
<!--T:178--><br />
:* [[Image:FEM_ConstraintMagnetization.svg|32px]] [[FEM_ConstraintMagnetization|Constraint magnetization]]: Used to define a magnetization. {{Version|1.0}}<br />
<br />
=== Fluid Constraints === <!--T:70--><br />
<br />
<!--T:89--><br />
* [[Image:FEM_ConstraintInitialFlowVelocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]: Used to define an initial flow velocity for a body (volume).<br />
<br />
<!--T:173--><br />
* [[Image:FEM_ConstraintInitialPressure.svg|32px]] [[FEM_ConstraintInitialPressure|Constraint initial pressure]]: Used to define an initial pressure for a body (volume). {{Version|1.0}}<br />
<br />
<!--T:91--><br />
* [[Image:FEM_ConstraintFlowVelocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Constraint flow velocity]]: Used to define a flow velocity as a boundary condition at an edge (2D) or face (3D).<br />
<br />
=== Geometrical Constraints === <!--T:160--><br />
<br />
<!--T:94--><br />
* [[Image:FEM_ConstraintPlaneRotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Constraint plane rotation]]: Used to define a plane rotation constraint on a planar face.<br />
<br />
<!--T:161--><br />
* [[Image:FEM_ConstraintSectionPrint.svg|32px]] [[FEM_ConstraintSectionPrint|Constraint section print]]: Used to print the predefined facial output variables (forces and moments) to the dat file. {{Version|0.19}}<br />
<br />
<!--T:96--><br />
* [[Image:FEM_ConstraintTransform.svg|32px]] [[FEM_ConstraintTransform|Constraint transform]]: Used to define a transform constraint on a face.<br />
<br />
=== Mechanical Constraints === <!--T:71--><br />
<br />
<!--T:92--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]: Used to define a fixed constraint on point/edge/face(s).<br />
<br />
<!--T:93--><br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]: Used to define a displacement constraint on point/edge/face(s).<br />
<br />
<!--T:95--><br />
* [[Image:FEM_ConstraintContact.svg|32px]] [[FEM_ConstraintContact|Constraint contact]]: Used to define a contact constraint between two faces.<br />
<br />
<!--T:162--><br />
* [[Image:FEM_ConstraintTie.svg|32px]] [[FEM_ConstraintTie|Constraint tie]]: Used to define a tie constraint ("bonded contact") between two faces. {{Version|0.19}}<br />
<br />
<!--T:169--><br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]: Used to define a spring. {{Version|0.20}}<br />
<br />
<!--T:97--><br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.<br />
<br />
<!--T:98--><br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]: Used to define a pressure constraint.<br />
<br />
<!--T:171--><br />
* [[Image:FEM_ConstraintCentrif.svg|32px]] [[FEM_ConstraintCentrif|Constraint centrif]]: Used to define a centrifugal body load constraint. {{Version|0.20}}<br />
<br />
<!--T:99--><br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]: Used to define a gravity acceleration acting on a model.<br />
<br />
=== Thermal Constraints === <!--T:72--><br />
<br />
<!--T:103--><br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]: Used to define the initial temperature of a body.<br />
<br />
<!--T:104--><br />
* [[Image:FEM_ConstraintHeatflux.svg|32px]] [[FEM_ConstraintHeatflux|Constraint heatflux]]: Used to define a heat flux constraint on a face(s).<br />
<br />
<!--T:105--><br />
* [[Image:FEM_ConstraintTemperature.svg|32px]] [[FEM_ConstraintTemperature|Constraint temperature]]: Used to define a temperature constraint on a point/edge/face(s).<br />
<br />
<!--T:106--><br />
* [[Image:FEM_ConstraintBodyHeatSource.svg|32px]] [[FEM_ConstraintBodyHeatSource|Constraint body heat source]]: Used to define an internally generated body heat.<br />
<br />
=== Constraints without solver === <!--T:163--><br />
<br />
<!--T:90--><br />
* [[Image:FEM_ConstraintFluidBoundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Fluid boundary condition]]: Used to define a fluid boundary condition.<br />
<br />
<!--T:100--><br />
* [[Image:FEM_ConstraintBearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint.<br />
<br />
<!--T:101--><br />
* [[Image:FEM_ConstraintGear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint.<br />
<br />
<!--T:102--><br />
* [[Image:FEM_ConstraintPulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint.<br />
<br />
=== Overwrite Constants === <!--T:164--><br />
<br />
<!--T:165--><br />
* [[Image:FEM_ConstantVacuumPermittivity.svg|32px]] [[FEM_ConstantVacuumPermittivity|Constant vacuum permittivity]]: Used to overwrite the [https://en.wikipedia.org/wiki/Vacuum_permittivity permittivity of vacuum] with a custom value. {{Version|0.19}}<br />
<br />
== Menu: Mesh == <!--T:73--><br />
<br />
<!--T:107--><br />
* [[Image:FEM_MeshNetgenFromShape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]: Generates a finite element mesh for a model using Netgen.<br />
<br />
<!--T:108--><br />
* [[Image:FEM_MeshGmshFromShape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by Gmsh]]: Generates a finite element mesh for a model using Gmsh.<br />
<br />
<!--T:109--><br />
* [[Image:FEM_MeshBoundaryLayer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]: Creates anisotropic meshes for accurate calculations near boundaries.<br />
<br />
<!--T:141--><br />
* [[Image:FEM_MeshRegion.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]: Creates a localized area(s) to mesh which highly optimizes analysis time.<br />
<br />
<!--T:110--><br />
* [[Image:FEM_MeshGroup.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.<br />
<br />
<!--T:111--><br />
* [[Image:FEM_CreateNodesSet.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh.<br />
<br />
<!--T:112--><br />
* [[Image:FEM_FemMesh2Mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.<br />
<br />
== Menu: Solve == <!--T:74--><br />
<br />
<!--T:113--><br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]: Creates a new solver for this analysis. In most cases the solver is created together with the analysis.<br />
<br />
<!--T:114--><br />
* [[Image:FEM_SolverCalculiX.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX (new framework)]]: Same as the original framework [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]] with extra checks.<br />
<br />
<!--T:115--><br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]: Creates the solver controller for Elmer. It is independent from other solver objects.<br />
<br />
<!--T:170--><br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Solver Mystran]]: Enables usage of the [https://www.mystran.com MYSTRAN] solver. {{Version|0.20}}<br />
<br />
<!--T:116--><br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Solver Z88]]: Creates the solver controller for Z88. It is independent from other solver objects.<br />
<br />
* [[Image:FEM_CompMechEquations.png|48px]] [[FEM_CompMechEquations|Mechanical equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:118--><br />
:* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform linear mechanical analyses.<br />
<br />
<!--T:185--><br />
:* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform nonlinear mechanical analyses (deformations). {{Version|1.0}}<br />
<br />
<!--T:179--><br />
* [[Image:FEM_CompEmEquations.png|48px]] [[FEM_CompEmEquations|Electromagnetic equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:119--><br />
:* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform electrostatic analyses.<br />
<br />
<!--T:166--><br />
:* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate the electric force on surfaces. {{Version|0.19}}<br />
<br />
<!--T:180--><br />
:* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics. {{Version|1.0}}<br />
<br />
<!--T:181--><br />
:* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics in 2D. {{Version|1.0}}<br />
<br />
<!--T:121--><br />
* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flow analyses.<br />
<br />
<!--T:120--><br />
* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flux analyses.<br />
<br />
<!--T:117--><br />
* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform heat transfer analyses.<br />
<br />
<!--T:122--><br />
* [[Image:FEM_SolverControl.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.<br />
<br />
<!--T:123--><br />
* [[Image:FEM_SolverRun.svg|32px]] [[FEM_SolverRun|Run solver calculations]]: Runs the selected solver of the active analysis.<br />
<br />
== Menu: Results == <!--T:75--><br />
<br />
<!--T:124--><br />
* [[Image:FEM_ResultsPurge.svg|32px]] [[FEM_ResultsPurge|Purge results]]: Deletes the results of the active analysis.<br />
<br />
<!--T:125--><br />
* [[Image:FEM_ResultShow.svg|24px]] [[FEM_ResultShow|Show result]]: Used to display the result of an analysis. This dialog is not available for the [[FEM_SolverElmer|Solver Elmer]] as this solver visualizes using the [[FEM_PostPipelineFromResult|Post pipeline from result]] object only.<br />
<br />
<!--T:126--><br />
* [[Image:FEM_PostApplyChanges.svg|32px]] [[FEM_PostApplyChanges|Apply changes to pipeline]]: Toggles if changes to pipelines and filters are applied immediately.<br />
<br />
<!--T:127--><br />
* [[Image:FEM_PostPipelineFromResult.svg|32px]] [[FEM_PostPipelineFromResult|Post pipeline from result]]: Used to add a new graphical representation of FEM analysis results (color scale and more display options).<br />
<br />
<!--T:128--><br />
* [[Image:FEM_PostFilterWarp.svg|32px]] [[FEM_PostFilterWarp|Warp filter]]: Used to visualize the scaled deformed shape of the model.<br />
<br />
<!--T:129--><br />
* [[Image:FEM_PostFilterClipScalar.svg|32px]] [[FEM_PostFilterClipScalar|Scalar clip filter]]: Used to clip a field with a specified scalar value.<br />
<br />
<!--T:130--><br />
* [[Image:FEM_PostFilterCutFunction.svg|32px]] [[FEM_PostFilterCutFunction|Function cut filter]]: Used to display the results on a sphere or a plane cutting through the model.<br />
<br />
<!--T:131--><br />
* [[Image:FEM_PostFilterClipRegion.svg|32px]] [[FEM_PostFilterClipRegion|Region clip filter]]: Used to clip a field with a sphere or a plane cutting through the model.<br />
<br />
<!--T:182--><br />
* [[Image:FEM_PostFilterContours.svg|32px]] [[FEM_PostFilterContours|Contours filter]]: Used to display iso-lines (for analyses in 2D) or iso-contours. {{Version|1.0}}<br />
<br />
<!--T:132--><br />
* [[Image:FEM_PostFilterDataAlongLine.svg|32px]] [[FEM_PostFilterDataAlongLine|Line clip filter]]: Used to plot the values of a field along a specified line.<br />
<br />
<!--T:133--><br />
* [[Image:FEM_PostFilterLinearizedStresses.svg|32px]] [[FEM_PostFilterLinearizedStresses|Stress linearization plot]]: Creates a stress linearization plot.<br />
<br />
<!--T:134--><br />
* [[Image:FEM_PostFilterDataAtPoint.svg|32px]] [[FEM_PostFilterDataAtPoint|Data at point clip filter]]: Used to display value of a selected field at a given point.<br />
<br />
<!--T:135--><br />
* [[Image:FEM_CompPostCreateFunctions.png|48px]] [[FEM_PostCreateFunctions|Filter functions]]: This is an icon menu in the FEM Results toolbar that holds the following commands:<br />
<br />
<!--T:174--><br />
:* [[Image:FEM_PostCreateFunctionPlane.svg|32px]] [[FEM_PostCreateFunctionPlane|Filter function plane]]: Cuts the result mesh with a plane.<br />
<br />
<!--T:175--><br />
:* [[Image:FEM_PostCreateFunctionSphere.svg|32px]] [[FEM_PostCreateFunctionSphere|Filter function sphere]]: Cuts the result mesh with a sphere.<br />
<br />
<!--T:183--><br />
:* [[Image:FEM_PostCreateFunctionCylinder.svg|32px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]]: Cuts the result mesh with a cylinder. {{Version|1.0}}<br />
<br />
<!--T:184--><br />
:* [[Image:FEM_PostCreateFunctionBox.svg|32px]] [[FEM_PostCreateFunctionBox|Filter function box]]: Cuts the result mesh with a box. {{Version|1.0}}<br />
<br />
== Menu: Utilities == <!--T:76--><br />
<br />
<!--T:136--><br />
* [[Image:FEM_ClippingPlaneAdd.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]: Adds a clipping plane for the whole model view.<br />
<br />
<!--T:137--><br />
* [[Image:FEM_ClippingPlaneRemoveAll.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]: Removes all existing [[FEM_ClippingPlaneAdd|clipping planes]].<br />
<br />
<!--T:158--><br />
* [[Image:FEM_Examples.svg|32px]] [[FEM_Examples|Open FEM examples]]: Open the GUI to access FEM examples.<br />
<br />
== Context Menu == <!--T:77--><br />
<br />
<!--T:138--><br />
* [[Image:FEM_MeshClear.svg|32px]] [[FEM_MeshClear|Clear FEM mesh]]: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.<br />
<br />
<!--T:139--><br />
* [[Image:FEM_MeshDisplayInfo.svg|32px]] [[FEM_MeshDisplayInfo|Display FEM mesh info]]: Displays basic statistics of existing mesh - number of nodes and elements of each type.<br />
<br />
== Preferences == <!--T:78--><br />
<br />
<!--T:140--><br />
* [[Image:Std_DlgPreferences.svg|32px]] [[FEM_Preferences|Preferences...]]: Preferences available in FEM Tools.<br />
<br />
== Information == <!--T:47--><br />
<br />
<!--T:147--><br />
The following pages explain different topics of the FEM Workbench.<br />
<br />
<!--T:148--><br />
[[FEM_Install|FEM Install]]: a detailed description on how to set up the external programs used in the workbench.<br />
<br />
<!--T:51--><br />
[[FEM_Mesh|FEM Mesh]]: further information on obtaining a mesh for finite element analysis.<br />
<br />
<!--T:62--><br />
[[FEM_Solver|FEM Solver]]: further information on the different solvers available in the workbench, and those that could be used in the future.<br />
<br />
<!--T:53--><br />
[[FEM_CalculiX|FEM CalculiX]]: further information on CalculiX, the default solver used in the workbench for structural analysis.<br />
<br />
<!--T:63--><br />
[[FEM_Concrete|FEM Concrete]]: interesting information on the topic of simulating concrete structures.<br />
<br />
== Tutorials == <!--T:172--><br />
<br />
<!--T:46--><br />
Tutorial 1: [[FEM_CalculiX_Cantilever_3D|FEM CalculiX Cantilever 3D]]; basic simply supported beam analysis.<br />
<br />
<!--T:54--><br />
Tutorial 2: [[FEM_tutorial|FEM Tutorial]]; simple tension analysis of a structure.<br />
<br />
<!--T:56--><br />
Tutorial 3: [[FEM_Tutorial_Python|FEM Tutorial Python]]; set up the cantilever example entirely through scripting in Python, including the mesh.<br />
<br />
<!--T:61--><br />
Tutorial 4: [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]; see the deformation of a block that is comprised of two materials.<br />
<br />
<!--T:155--><br />
Tutorial 5: [[Transient_FEM_analysis|Transient FEM analysis]]<br />
<br />
<!--T:157--><br />
Tutorial 6: [[Post-Processing_of_FEM_Results_with_Paraview|Post-Processing of FEM Results with Paraview]]<br />
<br />
<!--T:159--><br />
Tutorial 7: [[FEM_Example_Capacitance_Two_Balls|FEM Example Capacitance Two Balls]]; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.<br />
<br />
<!--T:55--><br />
Coupled thermal mechanical analysis tutorials by [https://opensimsa.github.io/training.html openSIM]<br />
<br />
<!--T:58--><br />
Video tutorial 1: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:59--><br />
Video tutorial 2: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:57--><br />
Many video tutorials: [https://www.youtube.com/channel/UCnvFCm2BbXOVI3ObfXcxXhw anisim Open Source Engineering Software] (in German)<br />
<br />
== Extending the FEM Workbench == <!--T:149--><br />
<br />
<!--T:150--><br />
The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.<br />
<br />
<!--T:151--><br />
The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the [[Power_users_hub|Power users hub]] and the [[Developer_hub|Developer hub]]. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the [https://forum.freecadweb.org/index.php FreeCAD forums], in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum].<br />
<br />
<!--T:60--><br />
The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.<br />
* [[Extend_FEM_Module|Extend FEM Module]]<br />
* [[Onboarding_FEM_Devs|Onboarding FEM Devs]] attempts to orient new devs on how to contribute to the FEM workbench.<br />
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]<br />
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]<br />
<br />
<!--T:152--><br />
A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.<br />
* [https://forum.freecadweb.org/viewtopic.php?t=17581 Early preview of ebook: Module developer' guide to FreeCAD source] forum thread.<br />
* [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide] github repository.<br />
<br />
== Extending the FEM Workbench documentation == <!--T:167--><br />
<br />
<!--T:168--><br />
* More information regarding extending or missing FEM documentation can be found in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20823 FEM documentation missing on the Wiki]<br />
<br />
<!--T:49--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Workbenches{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationDeformation&diff=1245999FEM EquationDeformation2023-03-27T00:57:28Z<p>Uwestoehr: update docnav</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationElasticity.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationDeformation<br />
|MenuLocation=Solve → Mechanical equations → Deformation equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=1.0<br />
|SeeAlso=[[FEM_EquationElasticity|Elasticity equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:5--><br />
<br />
<!--T:6--><br />
This equation describes the nonlinear elastic deformation of rigid bodies.<br />
<br />
<!--T:7--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Finite Elasticity''.<br />
<br />
==Usage== <!--T:8--><br />
<br />
<!--T:9--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationDeformation.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Deformation equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
==Solver Settings== <!--T:10--><br />
<br />
<!--T:11--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:12--><br />
The deformation equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Initialize State Variables}}: See the Elmer manual for more info.<br />
* {{PropertyData|Mixed Formulation}}: See the Elmer manual for more info.<br />
* {{PropertyData|Neo Hookean Model}}: Uses the neo-Hookean material model.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Change there the ''3'' to ''2'' if you have a 2D geometry. For the special case that you have {{PropertyData|Mixed Formulation}} and {{PropertyData|Neo Hookean Model}} set to ''true'', the variable number must be geometry dimensions + 1, so for 3D geometry the ''3'' must be changed to ''4''.<br />
<br />
<!--T:13--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:14--><br />
<br />
<!--T:15--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:16--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:17--><br />
<br />
<!--T:18--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Results== <!--T:19--><br />
<br />
<!--T:20--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available.<br />
<br />
<br />
<!--T:21--><br />
{{Docnav<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationElasticity.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1245998FEM EquationElasticity2023-03-27T00:56:13Z<p>Uwestoehr: update docnav</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Mechanical equations → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
'''Note''': For analyses of nonlinear deformation you must use the [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]] ({{Version|1.0}}). The Elasticity equation is only for linear deformations.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|constraint fixed]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use ''Umfpack'', the only direct method for parallel solving is ''MUMPS''.</br>Also note that iterative solving is not recommended for eigenmode analysis. Therefore either only use one CPU core or install the ''MUMPS'' module to Elmer.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_CompMechEquations.png<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverZ88&diff=1245997FEM SolverZ882023-03-27T00:52:47Z<p>Uwestoehr: update docnav</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverMystran.svg<br />
|IconR=FEM_CompMechEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM SolverZ88<br />
|MenuLocation=Solve → Solver Z88<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut={{KEY|S}} {{KEY|Z}}<br />
|SeeAlso=[[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
The [[FEM_SolverZ88|SolverZ88]] command enables usage of the [https://en.wikipedia.org/wiki/Z88_FEM_software Z88] solver. It may be used for:<br />
# Setting analysis parameters<br />
# Selecting working directory<br />
# Running the Z88 solver<br />
<br />
==Installation== <!--T:10--><br />
<br />
<!--T:11--><br />
To use the Z88 solver, the OpenSource version of Z88 (Z88OS) needs to be installed:<br />
# Download the ZIP file from the [https://en.z88.de/download-z88os Z88OS website].<br />
# Extract the ZIP to a folder of your choice.<br />
# In the [[FEM_Preferences|FEM preferences]] go to the Z88 tab and there set the path to the '''z88r''' binary. If you are on Windows this would be the path to the file {{FileName|z88r.exe}} that is in the subfolder {{FileName|~\bin\win64}} of the folder where your extracted the ZIP.<br />
<br />
==Usage== <!--T:9--><br />
<br />
<!--T:3--><br />
# After the creation of an [[Image:FEM_Analysis.svg|16px|link=FEM_Analysis]] [[FEM_Analysis|Analysis container]], use one of the following alternatives:<br />
#* Select {{MenuCommand|Solve → [[Image:FEM_SolverZ88.svg|x16px]] Solver Z88}} from the menu.<br />
#* Press the {{KEY|S}} then {{KEY|Z}} shortcut keys.<br />
# Double click the [[Image:FEM_SolverZ88.svg|x16px]] SolverZ88 object.<br />
# Select the {{MenuCommand|Analysis type}}.<br />
# Click the {{Button|Write}} button.<br />
# Click the {{Button|Run}} button.<br />
<br />
<!--T:12--><br />
As a result you get an object called ''Z88_xxx_results'' (depending on the run simulation) in the [[Tree_view|Tree view]]. This is the same kind of result object one gets when running the [[FEM_SolverCalculixCxxtools|CalculiX solver]]. Starting from this, you can visualize the results using [[FEM_PostPipelineFromResult|Post Pipeline]] and [[FEM_Workbench#Menu:_Results|Clip Filters]].<br />
<br />
== Preferences == <!--T:13--><br />
<br />
<!--T:14--><br />
See the [[FEM_Preferences#Z88|Z88 preferences]] for the possible solver settings like the used solver method.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_CompMechEquations|Mechanical equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverMystran.svg<br />
|IconR=FEM_CompMechEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_CompMechEquations&diff=1245996FEM CompMechEquations2023-03-27T00:51:02Z<p>Uwestoehr: initial</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:1--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:2--><br />
{{GuiCommand<br />
|Name=FEM CompMechEquations<br />
|MenuLocation=<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=1.0<br />
|SeeAlso=<br />
}}<br />
<br />
==Description== <!--T:3--><br />
<br />
<!--T:4--><br />
'''FEM CompEmEquations''' is an icon button in the FEM Equations toolbar that groups electromagnetic equations. Click on the down arrow to its right to expand the icons below it and select a tool.<br />
<br />
==Equations== <!--T:5--><br />
<br />
<!--T:6--><br />
You can choose these equations:<br />
* [[Image:FEM_EquationElasticity.svg|24px]] [[FEM_EquationElasticity|Elasticityequation]]: Equation to perform linear mechanical analyses.<br />
* [[Image:FEM_EquationDeformation.svg|24px]] [[FEM_EquationDeformation|Deformation equation]]: Equation to perform nonlinear mechanical analyses. {{Version|1.0}}<br />
<br />
<br />
<!--T:7--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationDeformation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Workbench&diff=1245995FEM Workbench2023-03-27T00:46:52Z<p>Uwestoehr: document new icon menu</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:142--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
<!--T:156--><br />
[[Image:Workbench_FEM.svg|thumb|128px|FEM workbench icon]]<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
== Introduction == <!--T:64--><br />
<br />
<!--T:1--><br />
The [[FEM_Workbench|FEM Workbench]] provides a modern [https://en.wikipedia.org/wiki/Finite_element_analysis finite element analysis] (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).<br />
<br />
</translate><br />
[[Image:FemWorkbench.jpg|300px]]<br />
<translate><br />
<br />
== Workflow == <!--T:65--><br />
<br />
<!--T:20--><br />
The steps to carry out a finite element analysis are:<br />
# Preprocessing: setting up the analysis problem.<br />
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.<br />
## Creating an analysis.<br />
### Adding simulation constraints such as loads and fixed supports to the geometric model.<br />
### Adding materials to the parts of the geometric model.<br />
### Creating a finite element mesh for the geometrical model, or importing it from a different application.<br />
# Solving: running an external solver from within FreeCAD.<br />
# Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.<br />
<br />
<!--T:33--><br />
The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.<br />
<br />
</translate><br />
[[Image:FEM_Workbench_workflow.svg|600px]]<br />
<translate><br />
<br />
<!--T:146--><br />
{{Caption|Workflow of the FEM Workbench; the workbench calls two external programs to perform meshing of a solid object, and perform the actual solution of the finite element problem}}<br />
<br />
== Menu: Model == <!--T:66--><br />
<br />
<!--T:79--><br />
* [[Image:FEM_Analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next. <br />
<br />
=== Materials === <!--T:67--><br />
<br />
<!--T:80--><br />
* [[Image:FEM_MaterialSolid.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a solid material from the database.<br />
<br />
<!--T:81--><br />
* [[Image:FEM_MaterialFluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a fluid material from the database.<br />
<br />
<!--T:82--><br />
* [[Image:FEM_MaterialMechanicalNonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you add a nonlinear mechanical material model.<br />
<br />
<!--T:154--><br />
* [[Image:FEM_MaterialReinforced.svg|32px]] [[FEM_MaterialReinforced|Reinforced material (concrete)]]: Lets you select reinforced materials consisting of a matrix and a reinforcement from the database.<br />
<br />
<!--T:83--><br />
* [[Image:FEM_MaterialEditor.svg|32px]] [[FEM_MaterialEditor|Material editor]]: Lets you open the material editor to edit materials.<br />
<br />
=== Element Geometry === <!--T:68--><br />
<br />
<!--T:84--><br />
* [[Image:FEM_ElementGeometry1D.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]: Used to define cross sections for beam elements.<br />
<br />
<!--T:85--><br />
* [[Image:FEM_ElementRotation1D.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]: Used to rotate cross sections of beam elements.<br />
<br />
<!--T:86--><br />
* [[Image:FEM_ElementGeometry2D.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]: Used to define shell element thickness.<br />
<br />
<!--T:87--><br />
* [[Image:FEM_ElementFluid1D.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]: Used to create fluid section element for pneumatic and hydraulic networks.<br />
<br />
=== Electromagnetic Constraints === <!--T:69--><br />
<br />
<!--T:176--><br />
* [[Image:FEM_CompEmConstraints.png|48px]] [[FEM_CompEmConstraints|Electromagnetic constraints]]: This is an icon menu in the FEM Constraints toolbar that holds the following constraints:<br />
<br />
<!--T:88--><br />
:* [[Image:FEM_ConstraintElectrostaticPotential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Constraint electrostatic potential]]: Used to define electrostatic potential.<br />
<br />
<!--T:177--><br />
:* [[Image:FEM_ConstraintCurrentDensity.svg|32px]] [[FEM_ConstraintCurrentDensity|Constraint current density]]: Used to define a current density. {{Version|1.0}}<br />
<br />
<!--T:178--><br />
:* [[Image:FEM_ConstraintMagnetization.svg|32px]] [[FEM_ConstraintMagnetization|Constraint magnetization]]: Used to define a magnetization. {{Version|1.0}}<br />
<br />
=== Fluid Constraints === <!--T:70--><br />
<br />
<!--T:89--><br />
* [[Image:FEM_ConstraintInitialFlowVelocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]: Used to define an initial flow velocity for a body (volume).<br />
<br />
<!--T:173--><br />
* [[Image:FEM_ConstraintInitialPressure.svg|32px]] [[FEM_ConstraintInitialPressure|Constraint initial pressure]]: Used to define an initial pressure for a body (volume). {{Version|1.0}}<br />
<br />
<!--T:91--><br />
* [[Image:FEM_ConstraintFlowVelocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Constraint flow velocity]]: Used to define a flow velocity as a boundary condition at an edge (2D) or face (3D).<br />
<br />
=== Geometrical Constraints === <!--T:160--><br />
<br />
<!--T:94--><br />
* [[Image:FEM_ConstraintPlaneRotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Constraint plane rotation]]: Used to define a plane rotation constraint on a planar face.<br />
<br />
<!--T:161--><br />
* [[Image:FEM_ConstraintSectionPrint.svg|32px]] [[FEM_ConstraintSectionPrint|Constraint section print]]: Used to print the predefined facial output variables (forces and moments) to the dat file. {{Version|0.19}}<br />
<br />
<!--T:96--><br />
* [[Image:FEM_ConstraintTransform.svg|32px]] [[FEM_ConstraintTransform|Constraint transform]]: Used to define a transform constraint on a face.<br />
<br />
=== Mechanical Constraints === <!--T:71--><br />
<br />
<!--T:92--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]: Used to define a fixed constraint on point/edge/face(s).<br />
<br />
<!--T:93--><br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]: Used to define a displacement constraint on point/edge/face(s).<br />
<br />
<!--T:95--><br />
* [[Image:FEM_ConstraintContact.svg|32px]] [[FEM_ConstraintContact|Constraint contact]]: Used to define a contact constraint between two faces.<br />
<br />
<!--T:162--><br />
* [[Image:FEM_ConstraintTie.svg|32px]] [[FEM_ConstraintTie|Constraint tie]]: Used to define a tie constraint ("bonded contact") between two faces. {{Version|0.19}}<br />
<br />
<!--T:169--><br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]: Used to define a spring. {{Version|0.20}}<br />
<br />
<!--T:97--><br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.<br />
<br />
<!--T:98--><br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]: Used to define a pressure constraint.<br />
<br />
<!--T:171--><br />
* [[Image:FEM_ConstraintCentrif.svg|32px]] [[FEM_ConstraintCentrif|Constraint centrif]]: Used to define a centrifugal body load constraint. {{Version|0.20}}<br />
<br />
<!--T:99--><br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]: Used to define a gravity acceleration acting on a model.<br />
<br />
=== Thermal Constraints === <!--T:72--><br />
<br />
<!--T:103--><br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]: Used to define the initial temperature of a body.<br />
<br />
<!--T:104--><br />
* [[Image:FEM_ConstraintHeatflux.svg|32px]] [[FEM_ConstraintHeatflux|Constraint heatflux]]: Used to define a heat flux constraint on a face(s).<br />
<br />
<!--T:105--><br />
* [[Image:FEM_ConstraintTemperature.svg|32px]] [[FEM_ConstraintTemperature|Constraint temperature]]: Used to define a temperature constraint on a point/edge/face(s).<br />
<br />
<!--T:106--><br />
* [[Image:FEM_ConstraintBodyHeatSource.svg|32px]] [[FEM_ConstraintBodyHeatSource|Constraint body heat source]]: Used to define an internally generated body heat.<br />
<br />
=== Constraints without solver === <!--T:163--><br />
<br />
<!--T:90--><br />
* [[Image:FEM_ConstraintFluidBoundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Fluid boundary condition]]: Used to define a fluid boundary condition.<br />
<br />
<!--T:100--><br />
* [[Image:FEM_ConstraintBearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint.<br />
<br />
<!--T:101--><br />
* [[Image:FEM_ConstraintGear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint.<br />
<br />
<!--T:102--><br />
* [[Image:FEM_ConstraintPulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint.<br />
<br />
=== Overwrite Constants === <!--T:164--><br />
<br />
<!--T:165--><br />
* [[Image:FEM_ConstantVacuumPermittivity.svg|32px]] [[FEM_ConstantVacuumPermittivity|Constant vacuum permittivity]]: Used to overwrite the [https://en.wikipedia.org/wiki/Vacuum_permittivity permittivity of vacuum] with a custom value. {{Version|0.19}}<br />
<br />
== Menu: Mesh == <!--T:73--><br />
<br />
<!--T:107--><br />
* [[Image:FEM_MeshNetgenFromShape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]: Generates a finite element mesh for a model using Netgen.<br />
<br />
<!--T:108--><br />
* [[Image:FEM_MeshGmshFromShape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by Gmsh]]: Generates a finite element mesh for a model using Gmsh.<br />
<br />
<!--T:109--><br />
* [[Image:FEM_MeshBoundaryLayer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]: Creates anisotropic meshes for accurate calculations near boundaries.<br />
<br />
<!--T:141--><br />
* [[Image:FEM_MeshRegion.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]: Creates a localized area(s) to mesh which highly optimizes analysis time.<br />
<br />
<!--T:110--><br />
* [[Image:FEM_MeshGroup.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.<br />
<br />
<!--T:111--><br />
* [[Image:FEM_CreateNodesSet.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh.<br />
<br />
<!--T:112--><br />
* [[Image:FEM_FemMesh2Mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.<br />
<br />
== Menu: Solve == <!--T:74--><br />
<br />
<!--T:113--><br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]: Creates a new solver for this analysis. In most cases the solver is created together with the analysis.<br />
<br />
<!--T:114--><br />
* [[Image:FEM_SolverCalculiX.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX (new framework)]]: Same as the original framework [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]] with extra checks.<br />
<br />
<!--T:115--><br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]: Creates the solver controller for Elmer. It is independent from other solver objects.<br />
<br />
<!--T:170--><br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Solver Mystran]]: Enables usage of the [https://www.mystran.com MYSTRAN] solver. {{Version|0.20}}<br />
<br />
<!--T:116--><br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Solver Z88]]: Creates the solver controller for Z88. It is independent from other solver objects.<br />
<br />
* [[Image:FEM_CompMechEquations.png|48px]] [[FEM_CompMechEquations|Mechanical equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:185--><br />
:* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform nonlinear mechanical analyses (deformations). {{Version|1.0}}<br />
<br />
<!--T:118--><br />
:* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform mechanical analyses.<br />
<br />
<!--T:179--><br />
* [[Image:FEM_CompEmEquations.png|48px]] [[FEM_CompEmEquations|Electromagnetic equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations: {{Version|1.0}}<br />
<br />
<!--T:119--><br />
:* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform electrostatic analyses.<br />
<br />
<!--T:166--><br />
:* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate the electric force on surfaces. {{Version|0.19}}<br />
<br />
<!--T:180--><br />
:* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics. {{Version|1.0}}<br />
<br />
<!--T:181--><br />
:* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics in 2D. {{Version|1.0}}<br />
<br />
<!--T:121--><br />
* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flow analyses.<br />
<br />
<!--T:120--><br />
* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flux analyses.<br />
<br />
<!--T:117--><br />
* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform heat transfer analyses.<br />
<br />
<!--T:122--><br />
* [[Image:FEM_SolverControl.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.<br />
<br />
<!--T:123--><br />
* [[Image:FEM_SolverRun.svg|32px]] [[FEM_SolverRun|Run solver calculations]]: Runs the selected solver of the active analysis.<br />
<br />
== Menu: Results == <!--T:75--><br />
<br />
<!--T:124--><br />
* [[Image:FEM_ResultsPurge.svg|32px]] [[FEM_ResultsPurge|Purge results]]: Deletes the results of the active analysis.<br />
<br />
<!--T:125--><br />
* [[Image:FEM_ResultShow.svg|24px]] [[FEM_ResultShow|Show result]]: Used to display the result of an analysis. This dialog is not available for the [[FEM_SolverElmer|Solver Elmer]] as this solver visualizes using the [[FEM_PostPipelineFromResult|Post pipeline from result]] object only.<br />
<br />
<!--T:126--><br />
* [[Image:FEM_PostApplyChanges.svg|32px]] [[FEM_PostApplyChanges|Apply changes to pipeline]]: Toggles if changes to pipelines and filters are applied immediately.<br />
<br />
<!--T:127--><br />
* [[Image:FEM_PostPipelineFromResult.svg|32px]] [[FEM_PostPipelineFromResult|Post pipeline from result]]: Used to add a new graphical representation of FEM analysis results (color scale and more display options).<br />
<br />
<!--T:128--><br />
* [[Image:FEM_PostFilterWarp.svg|32px]] [[FEM_PostFilterWarp|Warp filter]]: Used to visualize the scaled deformed shape of the model.<br />
<br />
<!--T:129--><br />
* [[Image:FEM_PostFilterClipScalar.svg|32px]] [[FEM_PostFilterClipScalar|Scalar clip filter]]: Used to clip a field with a specified scalar value.<br />
<br />
<!--T:130--><br />
* [[Image:FEM_PostFilterCutFunction.svg|32px]] [[FEM_PostFilterCutFunction|Function cut filter]]: Used to display the results on a sphere or a plane cutting through the model.<br />
<br />
<!--T:131--><br />
* [[Image:FEM_PostFilterClipRegion.svg|32px]] [[FEM_PostFilterClipRegion|Region clip filter]]: Used to clip a field with a sphere or a plane cutting through the model.<br />
<br />
<!--T:182--><br />
* [[Image:FEM_PostFilterContours.svg|32px]] [[FEM_PostFilterContours|Contours filter]]: Used to display iso-lines (for analyses in 2D) or iso-contours. {{Version|1.0}}<br />
<br />
<!--T:132--><br />
* [[Image:FEM_PostFilterDataAlongLine.svg|32px]] [[FEM_PostFilterDataAlongLine|Line clip filter]]: Used to plot the values of a field along a specified line.<br />
<br />
<!--T:133--><br />
* [[Image:FEM_PostFilterLinearizedStresses.svg|32px]] [[FEM_PostFilterLinearizedStresses|Stress linearization plot]]: Creates a stress linearization plot.<br />
<br />
<!--T:134--><br />
* [[Image:FEM_PostFilterDataAtPoint.svg|32px]] [[FEM_PostFilterDataAtPoint|Data at point clip filter]]: Used to display value of a selected field at a given point.<br />
<br />
<!--T:135--><br />
* [[Image:FEM_CompPostCreateFunctions.png|48px]] [[FEM_PostCreateFunctions|Filter functions]]: This is an icon menu in the FEM Results toolbar that holds the following commands:<br />
<br />
<!--T:174--><br />
:* [[Image:FEM_PostCreateFunctionPlane.svg|32px]] [[FEM_PostCreateFunctionPlane|Filter function plane]]: Cuts the result mesh with a plane.<br />
<br />
<!--T:175--><br />
:* [[Image:FEM_PostCreateFunctionSphere.svg|32px]] [[FEM_PostCreateFunctionSphere|Filter function sphere]]: Cuts the result mesh with a sphere.<br />
<br />
<!--T:183--><br />
:* [[Image:FEM_PostCreateFunctionCylinder.svg|32px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]]: Cuts the result mesh with a cylinder. {{Version|1.0}}<br />
<br />
<!--T:184--><br />
:* [[Image:FEM_PostCreateFunctionBox.svg|32px]] [[FEM_PostCreateFunctionBox|Filter function box]]: Cuts the result mesh with a box. {{Version|1.0}}<br />
<br />
== Menu: Utilities == <!--T:76--><br />
<br />
<!--T:136--><br />
* [[Image:FEM_ClippingPlaneAdd.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]: Adds a clipping plane for the whole model view.<br />
<br />
<!--T:137--><br />
* [[Image:FEM_ClippingPlaneRemoveAll.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]: Removes all existing [[FEM_ClippingPlaneAdd|clipping planes]].<br />
<br />
<!--T:158--><br />
* [[Image:FEM_Examples.svg|32px]] [[FEM_Examples|Open FEM examples]]: Open the GUI to access FEM examples.<br />
<br />
== Context Menu == <!--T:77--><br />
<br />
<!--T:138--><br />
* [[Image:FEM_MeshClear.svg|32px]] [[FEM_MeshClear|Clear FEM mesh]]: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.<br />
<br />
<!--T:139--><br />
* [[Image:FEM_MeshDisplayInfo.svg|32px]] [[FEM_MeshDisplayInfo|Display FEM mesh info]]: Displays basic statistics of existing mesh - number of nodes and elements of each type.<br />
<br />
== Preferences == <!--T:78--><br />
<br />
<!--T:140--><br />
* [[Image:Std_DlgPreferences.svg|32px]] [[FEM_Preferences|Preferences...]]: Preferences available in FEM Tools.<br />
<br />
== Information == <!--T:47--><br />
<br />
<!--T:147--><br />
The following pages explain different topics of the FEM Workbench.<br />
<br />
<!--T:148--><br />
[[FEM_Install|FEM Install]]: a detailed description on how to set up the external programs used in the workbench.<br />
<br />
<!--T:51--><br />
[[FEM_Mesh|FEM Mesh]]: further information on obtaining a mesh for finite element analysis.<br />
<br />
<!--T:62--><br />
[[FEM_Solver|FEM Solver]]: further information on the different solvers available in the workbench, and those that could be used in the future.<br />
<br />
<!--T:53--><br />
[[FEM_CalculiX|FEM CalculiX]]: further information on CalculiX, the default solver used in the workbench for structural analysis.<br />
<br />
<!--T:63--><br />
[[FEM_Concrete|FEM Concrete]]: interesting information on the topic of simulating concrete structures.<br />
<br />
== Tutorials == <!--T:172--><br />
<br />
<!--T:46--><br />
Tutorial 1: [[FEM_CalculiX_Cantilever_3D|FEM CalculiX Cantilever 3D]]; basic simply supported beam analysis.<br />
<br />
<!--T:54--><br />
Tutorial 2: [[FEM_tutorial|FEM Tutorial]]; simple tension analysis of a structure.<br />
<br />
<!--T:56--><br />
Tutorial 3: [[FEM_Tutorial_Python|FEM Tutorial Python]]; set up the cantilever example entirely through scripting in Python, including the mesh.<br />
<br />
<!--T:61--><br />
Tutorial 4: [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]; see the deformation of a block that is comprised of two materials.<br />
<br />
<!--T:155--><br />
Tutorial 5: [[Transient_FEM_analysis|Transient FEM analysis]]<br />
<br />
<!--T:157--><br />
Tutorial 6: [[Post-Processing_of_FEM_Results_with_Paraview|Post-Processing of FEM Results with Paraview]]<br />
<br />
<!--T:159--><br />
Tutorial 7: [[FEM_Example_Capacitance_Two_Balls|FEM Example Capacitance Two Balls]]; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.<br />
<br />
<!--T:55--><br />
Coupled thermal mechanical analysis tutorials by [https://opensimsa.github.io/training.html openSIM]<br />
<br />
<!--T:58--><br />
Video tutorial 1: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:59--><br />
Video tutorial 2: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:57--><br />
Many video tutorials: [https://www.youtube.com/channel/UCnvFCm2BbXOVI3ObfXcxXhw anisim Open Source Engineering Software] (in German)<br />
<br />
== Extending the FEM Workbench == <!--T:149--><br />
<br />
<!--T:150--><br />
The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.<br />
<br />
<!--T:151--><br />
The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the [[Power_users_hub|Power users hub]] and the [[Developer_hub|Developer hub]]. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the [https://forum.freecadweb.org/index.php FreeCAD forums], in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum].<br />
<br />
<!--T:60--><br />
The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.<br />
* [[Extend_FEM_Module|Extend FEM Module]]<br />
* [[Onboarding_FEM_Devs|Onboarding FEM Devs]] attempts to orient new devs on how to contribute to the FEM workbench.<br />
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]<br />
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]<br />
<br />
<!--T:152--><br />
A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.<br />
* [https://forum.freecadweb.org/viewtopic.php?t=17581 Early preview of ebook: Module developer' guide to FreeCAD source] forum thread.<br />
* [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide] github repository.<br />
<br />
== Extending the FEM Workbench documentation == <!--T:167--><br />
<br />
<!--T:168--><br />
* More information regarding extending or missing FEM documentation can be found in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20823 FEM documentation missing on the Wiki]<br />
<br />
<!--T:49--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Workbenches{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=File:FEM_CompMechEquations.png&diff=1245994File:FEM CompMechEquations.png2023-03-27T00:46:14Z<p>Uwestoehr: initial</p>
<hr />
<div>== Summary ==<br />
initial</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Preferences&diff=1245993FEM Preferences2023-03-27T00:31:27Z<p>Uwestoehr: wording</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<!--T:1--><br />
The preferences screen of the [[FEM_Workbench|FEM Workbench]] are found in the [[Preferences_Editor|Preferences Editor]], {{MenuCommand|Edit → Preferences → FEM}}.<br />
<br />
<!--T:8--><br />
There are several tabs in the FEM workbench preferences, starting with the '''General''' configuration of the workbench. The rest of the tabs control how FEM interacts with supported external solvers. <br />
<br />
<!--T:15--><br />
The current supported external solvers are:<br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|CalculiX]]<br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer]]<br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Mystran]] ({{Version|0.20}})<br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Z88]]<br />
<br />
==General== <!--T:2--><br />
<br />
<!--T:16--><br />
On the ''General'' tab you can specify the following:<br />
<br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Working directory}}<br />
| In what directory the mesh and solver files should be stored<br />
|-<br />
| {{MenuCommand|Create mesh groups}}<br />
| When there are several meshes they will be grouped<br />
|-<br />
| {{MenuCommand|Keep results on calculation re-run}}<br />
| Existing [[FEM_ResultShow|Result objects]] will be kept, otherwise overwritten by a new solver run<br />
|-<br />
| {{MenuCommand|Restore result dialog settings}}<br />
| If checked, the [[FEM_ResultShow|Show result]] dialog is opened with the last used dialog settings<br />
|-<br />
| {{MenuCommand|Hide constraints when open result dialog}}<br />
| The constraints will be hidden in the model view when the [[FEM_ResultShow|Show result]] dialog is opened<br />
|-<br />
| {{MenuCommand|Default solver}}<br />
| Default solver to be added when adding an [[FEM_Analysis|Analysis container]]. ({{Version|1.0}})<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_01.png]]<br />
<translate><br />
<br />
==Gmsh== <!--T:4--><br />
<br />
<!--T:17--><br />
On the ''Gmsh'' tab you can specify the following:<br />
<br />
<!--T:18--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of [[FEM_MeshGmshFromShape|Gmsh]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Gmsh binary path}}<br />
| The path to the the binary of [[FEM_MeshGmshFromShape|Gmsh]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_03.png]]<br />
<translate><br />
<br />
==CalculiX== <!--T:3--><br />
<br />
<!--T:19--><br />
On the ''CalculiX'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_02.png]]<br />
<translate><br />
<br />
==Elmer== <!--T:6--><br />
<br />
<!--T:20--><br />
On the ''Elmer'' tab you can specify the following:<br />
<br />
<!--T:21--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|ElmerGrid: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerGrid binary path}}<br />
| The path to the the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|ElmerSolver: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the solver binary of [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerSolver binary path}}<br />
| The path to the the solver binary of [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|CPU cores to be used}}<br />
| The number of CPU cores that will be used to perform the solving.<br />
'''Important:''' Elmer divides the mesh into portions. The number of portions is equal to the number of CPU cores used. This can result in side-effects:<br />
* Depending on your mesh a smaller number of CPU cores can run faster than using more cores.<br />
* In some cases using e.g. 12 cores does not converge while 8 cores will work fine. The reason is that at some point the mesh portions become too small.<br />
So it is often necessary to adjust the number of cores, depending on the mesh.<br />
<br />
<!--T:32--><br />
'''Known limitation:''' For some simulation types you first need to install Elmer modules to enable multi-threading. Check the Elmer report for info about this. A typical case is that for direct solving one has to install the MUMPS module.<br />
|-<br />
| {{MenuCommand|Filter results}}<br />
| The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_05.png]]<br />
<translate><br />
<br />
==Mystran== <!--T:22--><br />
<br />
<!--T:23--><br />
On the ''Mystran'' tab you can specify the following:<br />
<br />
<!--T:24--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the [[FEM_SolverMystran|Mystran]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Mystran binary path}}<br />
| The path to the the binary of the [[FEM_SolverMystran|Mystran]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Mystran.png]]<br />
<translate><br />
<br />
==Z88== <!--T:5--><br />
<br />
<!--T:26--><br />
On the ''Z88'' tab you can specify the following:<br />
<br />
<!--T:27--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|z88r binary path}}<br />
| The path to the the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]]<br />
|-<br />
| {{MenuCommand|Solver method}}<br />
| The solver method used by the [[FEM_SolverZ88|Z88 solver]] for new simulations.<br />
|-<br />
| {{MenuCommand|Max places in stiffness matrix}}<br />
| This is relevant when the solver method ''Simple Cholesky'' is used. After starting the solver, it might tell you that you need to increase the ''MAXGS'' value. In this case increase the max places and re-run the solver.<br />
|-<br />
| {{MenuCommand|Max places in coincidence vector}}<br />
| This is relevant when one of the iterative solver methods is used. After starting the solver, it might tell you that you need to increase the ''MAXKOI'' value. In this case increase the max places and re-run the solver.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_04.png]]<br />
<translate><br />
<br />
==Material== <!--T:28--><br />
<br />
<!--T:29--><br />
On the ''Material'' tab you can specify the following:<br />
<br />
<!--T:30--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Use built-in materials}}<br />
| The cards built-in to FreeCAD will be listed as available.<br />
|-<br />
| {{MenuCommand|Use materials from Materials directory in user's FreeCAD preference directory}}<br />
| The cards from FreeCAD's preferences directory will be listed as available. On Windows, that would for example be this folder:<br />
''C:\Users\<username>\AppData\Roaming\FreeCAD\Material''<br />
|-<br />
| {{MenuCommand|Use materials from user defined directory}}<br />
| Also material cards also from the specified directory will be listed as available.<br />
|-<br />
| {{MenuCommand|Delete card duplicates}}<br />
| Duplicate cards will be deleted from the displayed material card list.<br />
|-<br />
| {{MenuCommand|Sort by resources}}<br />
| Material cards will appear sorted by their resources (locations). If unchecked, they will be sorted by their name.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Material.png]]<br />
<br />
<br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Preferences{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Preferences&diff=1245990FEM Preferences2023-03-27T00:28:32Z<p>Uwestoehr: finish documentation</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<!--T:1--><br />
The preferences screen of the [[FEM_Workbench|FEM Workbench]] are found in the [[Preferences_Editor|Preferences Editor]], {{MenuCommand|Edit → Preferences → FEM}}.<br />
<br />
<!--T:8--><br />
There are several tabs in the FEM workbench preferences, starting with the '''General''' configuration of the workbench. The rest of the tabs control how FEM interacts with supported external solvers. <br />
<br />
<!--T:15--><br />
The current supported external solvers are:<br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|CalculiX]]<br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer]]<br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Mystran]] ({{Version|0.20}})<br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Z88]]<br />
<br />
==General== <!--T:2--><br />
<br />
<!--T:16--><br />
On the ''General'' tab you can specify the following:<br />
<br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Working directory}}<br />
| In what directory the mesh and solver files should be stored<br />
|-<br />
| {{MenuCommand|Create mesh groups}}<br />
| When there are several meshes they will be grouped<br />
|-<br />
| {{MenuCommand|Keep results on calculation re-run}}<br />
| Existing [[FEM_ResultShow|Show result dialog]] objects will be kept, otherwise overwritten by a new solver run<br />
|-<br />
| {{MenuCommand|Restore result dialog settings}}<br />
| If checked, the [[FEM_ResultShow|Show result dialog]] is opened with the last used dialog settings<br />
|-<br />
| {{MenuCommand|Hide constraints when open result dialog}}<br />
| The constraints will be hidden in the model view when the [[FEM_ResultShow|Show result dialog]] is opened<br />
|-<br />
| {{MenuCommand|Default solver}}<br />
| Default solver to be added when adding an [[FEM_Analysis|Analysis container]]. ({{Version|1.0}})<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_01.png]]<br />
<translate><br />
<br />
==Gmsh== <!--T:4--><br />
<br />
<!--T:17--><br />
On the ''Gmsh'' tab you can specify the following:<br />
<br />
<!--T:18--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of [[FEM_MeshGmshFromShape|Gmsh]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Gmsh binary path}}<br />
| The path to the the binary of [[FEM_MeshGmshFromShape|Gmsh]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_03.png]]<br />
<translate><br />
<br />
==CalculiX== <!--T:3--><br />
<br />
<!--T:19--><br />
On the ''CalculiX'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_02.png]]<br />
<translate><br />
<br />
==Elmer== <!--T:6--><br />
<br />
<!--T:20--><br />
On the ''Elmer'' tab you can specify the following:<br />
<br />
<!--T:21--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|ElmerGrid: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerGrid binary path}}<br />
| The path to the the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|ElmerSolver: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the solver binary of [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerSolver binary path}}<br />
| The path to the the solver binary of [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|CPU cores to be used}}<br />
| The number of CPU cores that will be used to perform the solving.<br />
'''Important:''' Elmer divides the mesh into portions. The number of portions is equal to the number of CPU cores used. This can result in side-effects:<br />
* Depending on your mesh a smaller number of CPU cores can run faster than using more cores.<br />
* In some cases using e.g. 12 cores does not converge while 8 cores will work fine. The reason is that at some point the mesh portions become too small.<br />
So it is often necessary to adjust the number of cores, depending on the mesh.<br />
<br />
<!--T:32--><br />
'''Known limitation:''' For some simulation types you first need to install Elmer modules to enable multi-threading. Check the Elmer report for info about this. A typical case is that for direct solving one has to install the MUMPS module.<br />
|-<br />
| {{MenuCommand|Filter results}}<br />
| The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_05.png]]<br />
<translate><br />
<br />
==Mystran== <!--T:22--><br />
<br />
<!--T:23--><br />
On the ''Mystran'' tab you can specify the following:<br />
<br />
<!--T:24--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the [[FEM_SolverMystran|Mystran]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Mystran binary path}}<br />
| The path to the the binary of the [[FEM_SolverMystran|Mystran]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Mystran.png]]<br />
<translate><br />
<br />
==Z88== <!--T:5--><br />
<br />
<!--T:26--><br />
On the ''Z88'' tab you can specify the following:<br />
<br />
<!--T:27--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|z88r binary path}}<br />
| The path to the the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]]<br />
|-<br />
| {{MenuCommand|Solver method}}<br />
| The solver method used by the [[FEM_SolverZ88|Z88 solver]] for new simulations.<br />
|-<br />
| {{MenuCommand|Max places in stiffness matrix}}<br />
| This is relevant when the solver method ''Simple Cholesky'' is used. After starting the solver, it might tell you that you need to increase the ''MAXGS'' value. In this case increase the max places and re-run the solver.<br />
|-<br />
| {{MenuCommand|Max places in coincidence vector}}<br />
| This is relevant when one of the iterative solver methods is used. After starting the solver, it might tell you that you need to increase the ''MAXKOI'' value. In this case increase the max places and re-run the solver.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_04.png]]<br />
<translate><br />
<br />
==Material== <!--T:28--><br />
<br />
<!--T:29--><br />
On the ''Material'' tab you can specify the following:<br />
<br />
<!--T:30--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Use built-in materials}}<br />
| The cards built-in to FreeCAD will be listed as available.<br />
|-<br />
| {{MenuCommand|Use materials from Materials directory in user's FreeCAD preference directory}}<br />
| The cards from FreeCAD's preferences directory will be listed as available. On Windows, that would for example be this folder:<br />
''C:\Users\<username>\AppData\Roaming\FreeCAD\Material''<br />
|-<br />
| {{MenuCommand|Use materials from user defined directory}}<br />
| Also material cards also from the specified directory will be listed as available.<br />
|-<br />
| {{MenuCommand|Delete card duplicates}}<br />
| Duplicate cards will be deleted from the displayed material card list.<br />
|-<br />
| {{MenuCommand|Sort by resources}}<br />
| Material cards will appear sorted by their resources (locations). If unchecked, they will be sorted by their name.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Material.png]]<br />
<br />
<br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Preferences{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_ConstraintInitialFlowVelocity&diff=1245979FEM ConstraintInitialFlowVelocity2023-03-27T00:19:26Z<p>Uwestoehr: omit obvious prefix (link goes to same workbench)</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_ConstraintMagnetization|Constraint magnetization]]<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintMagnetization.svg<br />
|IconR=FEM_ConstraintInitialPressure.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ConstraintInitialFlowVelocity<br />
|MenuLocation=Model → Fluid Constraints → Constraint initial flow velocity<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|SeeAlso=[[FEM_ConstraintFlowVelocity|Constraint flow velocity]], [[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
Creates an initial flow velocity constraint for a fluid flow analysis.<br />
<br />
==Usage== <!--T:10--> <br />
<br />
<!--T:9--><br />
# Either press the toolbar button {{Button|[[Image:FEM_ConstraintInitialFlowVelocity.svg|16px]] '''FEM ConstraintInitialFlowVelocity'''}} or select the menu {{MenuCommand|Model → Fluid Constraints → [[Image:FEM_ConstraintInitialFlowVelocity.svg|16px]] Constraint initial flow velocity}}.<br />
# Enter an initial flow velocity value for the analysis. The value is entered as a combination of the 3 main cartesian vectors components (X,Y,Z).<br />
# For a 3D analysis, select a 'solid' (body) from your model, for a 2D analysis select a face. However, it is also possible to select a face (e.g. the inlet of a pipe) in 3D or an edge in 2D.<br />
<br />
==Formulas== <!--T:15--><br />
<br />
<!--T:16--><br />
For a description how to input formulas, see section ''Formulas'' in the page for the [[FEM_ConstraintFlowVelocity#Formulas|Flow velocity constraint]].<br />
<br />
==Notes== <!--T:13--> <br />
<br />
<!--T:14--><br />
In simple analyses, it is not necessary to specify the initial flow velocity, however it is recommended as best practice.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_ConstraintMagnetization|Constraint magnetization]]<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintMagnetization.svg<br />
|IconR=FEM_ConstraintInitialPressure.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1245970FEM EquationElasticity2023-03-27T00:00:04Z<p>Uwestoehr: update to new menu location</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Mechanical equations → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
'''Note''': For analyses of nonlinear deformation you must use the [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]] ({{Version|1.0}}). The Elasticity equation is only for linear deformations.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|constraint fixed]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use ''Umfpack'', the only direct method for parallel solving is ''MUMPS''.</br>Also note that iterative solving is not recommended for eigenmode analysis. Therefore either only use one CPU core or install the ''MUMPS'' module to Elmer.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245969FEM SolverElmer SolverSettings2023-03-26T23:58:24Z<p>Uwestoehr: improve a heading and wording</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping (transient analyses)=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient analyses the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over the solver time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_ResultShow&diff=1245915FEM ResultShow2023-03-26T19:17:01Z<p>Uwestoehr: add info about Elmer</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_ResultsPurge|Purge results]]<br />
|[[FEM_PostApplyChanges|Apply changes to pipeline]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ResultsPurge.svg<br />
|IconR=FEM_PostApplyChanges.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ResultShow<br />
|MenuLocation=Results → Show result<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut={{KEY|R}} {{KEY|S}}<br />
|SeeAlso=[[FEM_PostPipelineFromResult|FEM Result pipeline]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:2--><br />
<br />
<!--T:9--><br />
The '''ResultShow''' command opens the dialog for a FEM results object. A Result object is automatically created when a FEM analysis was performed using either the solver [[FEM_SolverCalculixCxxtools|Calculix]] or [[FEM_SolverZ88|Z88]].<br />
<br />
<!--T:10--><br />
A Result object holds the resulting mesh and allows to visualize results. It is designed and therefore limited to thermomechanical results. Except for the [[FEM_SolverElmer|Solver Elmer]], it can be used as alternative to a [[FEM_PostPipelineFromResult|result pipeline]]. A result pipeline can be used to visualize any kind of results (also electrical etc.).<br />
<br />
<!--T:11--><br />
The units used for the Result object are those of the set [[Preferences_Editor#Units|unit system]] while for a result pipelines, the units are [https://en.wikipedia.org/wiki/International_System_of_Units SI].<br />
<br />
<!--T:12--><br />
The visualization of the results is only active when the dialog is open. However, the dialog settings are stored in the FreeCAD model file.<br />
<br />
==Usage== <!--T:3--><br />
<br />
<!--T:8--><br />
To show the result dialog, select the result object in the [[Tree_view|Tree view]], then either press the toolbar button {{Button|[[Image:FEM_ResultShow.svg|16px]] '''Show result'''}} or use the menu {{MenuCommand|Results → [[Image:FEM_ResultShow.svg|16px]] Show result}} (sortcut {{KEY|R}} then {{KEY|S}}). Alternatively you can also double-click on the result object in the tree view.<br />
<br />
<!--T:13--><br />
When the dialog is open, the result mesh will automatically be shown.<br />
<br />
</translate><br />
[[File:FEM_Result-Object-Dialog.png|left|framed]]<br />
<translate><br />
<br />
<!--T:14--><br />
The dialog is shown at the left and offers the following features:<br />
<br />
<!--T:15--><br />
* Select a result type and the minimum and maximum will be displayed in the dialog. The result mesh will be colored accordingly.<br />
<br />
<!--T:16--><br />
* Click on the button {{Button|'''Histogram'''}} to get a histogram what amount of result mesh nodes have a certain result. The histogram plot can be modified by the buttons in its toolbar. it is also possible to save the histogram as image using the save button from its toolbar.<br />
<br />
<!--T:17--><br />
* Check the option '''Show''' to enables the slider and to visualize the result mesh deformation. The slider value is a factor with which the result ''Displacement Magnitude'' is multiplied.</br>'''Note''': The slider only affects the Displacement Magnitude, not its X, Y, Z components.<br />
<br />
<!--T:18--><br />
* With the button {{Button|'''Calculate'''}} you can perform calculations of the results. Input in the text box below the button an equation of you choice. Predefined is the equation ''P1-P3''. This means the result ''Min Principal Stress'' is subtracted from the ''Max Principal Stress''. The variables for the possible results are explained in the box '''User defined equation'''.</br>After you input an equation press the button and the result will be shown in the fields displaying the minimum and maximum. The result mesh will be colored accordingly.</br>'''Note''': The calculation results always have the unit MPa, mm or T, no matter what [[Preferences_Editor#Units|unit system]] you use.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_ResultsPurge|Purge results]]<br />
|[[FEM_PostApplyChanges|Apply changes to pipeline]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ResultsPurge.svg<br />
|IconR=FEM_PostApplyChanges.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Workbench&diff=1245914FEM Workbench2023-03-26T19:14:37Z<p>Uwestoehr: add note about results dialog</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:142--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
<!--T:156--><br />
[[Image:Workbench_FEM.svg|thumb|128px|FEM workbench icon]]<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
== Introduction == <!--T:64--><br />
<br />
<!--T:1--><br />
The [[FEM_Workbench|FEM Workbench]] provides a modern [https://en.wikipedia.org/wiki/Finite_element_analysis finite element analysis] (FEA) workflow for FreeCAD. Mainly this means all tools to make an analysis are combined into one graphical user interface (GUI).<br />
<br />
</translate><br />
[[Image:FemWorkbench.jpg|300px]]<br />
<translate><br />
<br />
== Workflow == <!--T:65--><br />
<br />
<!--T:20--><br />
The steps to carry out a finite element analysis are:<br />
# Preprocessing: setting up the analysis problem.<br />
## Modeling the geometry: creating the geometry with FreeCAD, or importing it from a different application.<br />
## Creating an analysis.<br />
### Adding simulation constraints such as loads and fixed supports to the geometric model.<br />
### Adding materials to the parts of the geometric model.<br />
### Creating a finite element mesh for the geometrical model, or importing it from a different application.<br />
# Solving: running an external solver from within FreeCAD.<br />
# Postprocessing: visualizing the analysis results from within FreeCAD, or exporting the results so they can be postprocessed with another application.<br />
<br />
<!--T:33--><br />
The FEM Workbench can be used on Linux, Windows, and Mac OSX. Since the workbench makes use of external solvers, the amount of manual setup will depend on the operating system that you are using. See [[FEM Install|FEM Install]] for instructions on setting up the external tools.<br />
<br />
</translate><br />
[[Image:FEM_Workbench_workflow.svg|600px]]<br />
<translate><br />
<br />
<!--T:146--><br />
{{Caption|Workflow of the FEM Workbench; the workbench calls two external programs to perform meshing of a solid object, and perform the actual solution of the finite element problem}}<br />
<br />
== Menu: Model == <!--T:66--><br />
<br />
<!--T:79--><br />
* [[Image:FEM_Analysis.svg|32px]] [[FEM_Analysis|Analysis container]]: Creates a new container for a mechanical analysis. If a solid is selected in the tree view before clicking on it, the meshing dialog will be opened next. <br />
<br />
=== Materials === <!--T:67--><br />
<br />
<!--T:80--><br />
* [[Image:FEM_MaterialSolid.svg|32px]] [[FEM_MaterialSolid|Material for solid]]: Lets you select a solid material from the database.<br />
<br />
<!--T:81--><br />
* [[Image:FEM_MaterialFluid.svg|32px]] [[FEM_MaterialFluid|Material for fluid]]: Lets you select a fluid material from the database.<br />
<br />
<!--T:82--><br />
* [[Image:FEM_MaterialMechanicalNonlinear.svg|32px]] [[FEM_MaterialMechanicalNonlinear|Nonlinear mechanical material]]: Lets you add a nonlinear mechanical material model.<br />
<br />
<!--T:154--><br />
* [[Image:FEM_MaterialReinforced.svg|32px]] [[FEM_MaterialReinforced|Reinforced material (concrete)]]: Lets you select reinforced materials consisting of a matrix and a reinforcement from the database.<br />
<br />
<!--T:83--><br />
* [[Image:FEM_MaterialEditor.svg|32px]] [[FEM_MaterialEditor|Material editor]]: Lets you open the material editor to edit materials.<br />
<br />
=== Element Geometry === <!--T:68--><br />
<br />
<!--T:84--><br />
* [[Image:FEM_ElementGeometry1D.svg|32px]] [[FEM_ElementGeometry1D|Beam cross section]]: Used to define cross sections for beam elements.<br />
<br />
<!--T:85--><br />
* [[Image:FEM_ElementRotation1D.svg|32px]] [[FEM_ElementRotation1D|Beam rotation]]: Used to rotate cross sections of beam elements.<br />
<br />
<!--T:86--><br />
* [[Image:FEM_ElementGeometry2D.svg|32px]] [[FEM_ElementGeometry2D|Shell plate thickness]]: Used to define shell element thickness.<br />
<br />
<!--T:87--><br />
* [[Image:FEM_ElementFluid1D.svg|32px]] [[FEM_ElementFluid1D|Fluid section for 1D flow]]: Used to create fluid section element for pneumatic and hydraulic networks.<br />
<br />
=== Electromagnetic Constraints === <!--T:69--><br />
<br />
<!--T:176--><br />
* [[Image:FEM_CompEmConstraints.png|48px]] [[FEM_CompEmConstraints|Electromagnetic constraints]]: This is an icon menu in the FEM Constraints toolbar that holds the following constraints:<br />
<br />
<!--T:88--><br />
:* [[Image:FEM_ConstraintElectrostaticPotential.svg|32px]] [[FEM_ConstraintElectrostaticPotential|Constraint electrostatic potential]]: Used to define electrostatic potential.<br />
<br />
<!--T:177--><br />
:* [[Image:FEM_ConstraintCurrentDensity.svg|32px]] [[FEM_ConstraintCurrentDensity|Constraint current density]]: Used to define a current density. {{Version|1.0}}<br />
<br />
<!--T:178--><br />
:* [[Image:FEM_ConstraintMagnetization.svg|32px]] [[FEM_ConstraintMagnetization|Constraint magnetization]]: Used to define a magnetization. {{Version|1.0}}<br />
<br />
=== Fluid Constraints === <!--T:70--><br />
<br />
<!--T:89--><br />
* [[Image:FEM_ConstraintInitialFlowVelocity.svg|32px]] [[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]: Used to define an initial flow velocity for a body (volume).<br />
<br />
<!--T:173--><br />
* [[Image:FEM_ConstraintInitialPressure.svg|32px]] [[FEM_ConstraintInitialPressure|Constraint initial pressure]]: Used to define an initial pressure for a body (volume). {{Version|1.0}}<br />
<br />
<!--T:91--><br />
* [[Image:FEM_ConstraintFlowVelocity.svg|32px]] [[FEM_ConstraintFlowVelocity|Constraint flow velocity]]: Used to define a flow velocity as a boundary condition at an edge (2D) or face (3D).<br />
<br />
=== Geometrical Constraints === <!--T:160--><br />
<br />
<!--T:94--><br />
* [[Image:FEM_ConstraintPlaneRotation.svg|32px]] [[FEM_ConstraintPlaneRotation|Constraint plane rotation]]: Used to define a plane rotation constraint on a planar face.<br />
<br />
<!--T:161--><br />
* [[Image:FEM_ConstraintSectionPrint.svg|32px]] [[FEM_ConstraintSectionPrint|Constraint section print]]: Used to print the predefined facial output variables (forces and moments) to the dat file. {{Version|0.19}}<br />
<br />
<!--T:96--><br />
* [[Image:FEM_ConstraintTransform.svg|32px]] [[FEM_ConstraintTransform|Constraint transform]]: Used to define a transform constraint on a face.<br />
<br />
=== Mechanical Constraints === <!--T:71--><br />
<br />
<!--T:92--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]: Used to define a fixed constraint on point/edge/face(s).<br />
<br />
<!--T:93--><br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]: Used to define a displacement constraint on point/edge/face(s).<br />
<br />
<!--T:95--><br />
* [[Image:FEM_ConstraintContact.svg|32px]] [[FEM_ConstraintContact|Constraint contact]]: Used to define a contact constraint between two faces.<br />
<br />
<!--T:162--><br />
* [[Image:FEM_ConstraintTie.svg|32px]] [[FEM_ConstraintTie|Constraint tie]]: Used to define a tie constraint ("bonded contact") between two faces. {{Version|0.19}}<br />
<br />
<!--T:169--><br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]: Used to define a spring. {{Version|0.20}}<br />
<br />
<!--T:97--><br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]: Used to define a force in [N] applied uniformly to a selectable face in a definable direction.<br />
<br />
<!--T:98--><br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]: Used to define a pressure constraint.<br />
<br />
<!--T:171--><br />
* [[Image:FEM_ConstraintCentrif.svg|32px]] [[FEM_ConstraintCentrif|Constraint centrif]]: Used to define a centrifugal body load constraint. {{Version|0.20}}<br />
<br />
<!--T:99--><br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]: Used to define a gravity acceleration acting on a model.<br />
<br />
=== Thermal Constraints === <!--T:72--><br />
<br />
<!--T:103--><br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]: Used to define the initial temperature of a body.<br />
<br />
<!--T:104--><br />
* [[Image:FEM_ConstraintHeatflux.svg|32px]] [[FEM_ConstraintHeatflux|Constraint heatflux]]: Used to define a heat flux constraint on a face(s).<br />
<br />
<!--T:105--><br />
* [[Image:FEM_ConstraintTemperature.svg|32px]] [[FEM_ConstraintTemperature|Constraint temperature]]: Used to define a temperature constraint on a point/edge/face(s).<br />
<br />
<!--T:106--><br />
* [[Image:FEM_ConstraintBodyHeatSource.svg|32px]] [[FEM_ConstraintBodyHeatSource|Constraint body heat source]]: Used to define an internally generated body heat.<br />
<br />
=== Constraints without solver === <!--T:163--><br />
<br />
<!--T:90--><br />
* [[Image:FEM_ConstraintFluidBoundary.svg|32px]] [[FEM_ConstraintFluidBoundary|Fluid boundary condition]]: Used to define a fluid boundary condition.<br />
<br />
<!--T:100--><br />
* [[Image:FEM_ConstraintBearing.svg|32px]] [[FEM_ConstraintBearing|Constraint bearing]]: Used to define a bearing constraint.<br />
<br />
<!--T:101--><br />
* [[Image:FEM_ConstraintGear.svg|32px]] [[FEM_ConstraintGear|Constraint gear]]: Used to define a gear constraint.<br />
<br />
<!--T:102--><br />
* [[Image:FEM_ConstraintPulley.svg|32px]] [[FEM_ConstraintPulley|Constraint pulley]]: Used to define a pulley constraint.<br />
<br />
=== Overwrite Constants === <!--T:164--><br />
<br />
<!--T:165--><br />
* [[Image:FEM_ConstantVacuumPermittivity.svg|32px]] [[FEM_ConstantVacuumPermittivity|Constant vacuum permittivity]]: Used to overwrite the [https://en.wikipedia.org/wiki/Vacuum_permittivity permittivity of vacuum] with a custom value. {{Version|0.19}}<br />
<br />
== Menu: Mesh == <!--T:73--><br />
<br />
<!--T:107--><br />
* [[Image:FEM_MeshNetgenFromShape.svg|32px]] [[FEM_MeshNetgenFromShape|FEM mesh from shape by Netgen]]: Generates a finite element mesh for a model using Netgen.<br />
<br />
<!--T:108--><br />
* [[Image:FEM_MeshGmshFromShape.svg|32px]] [[FEM_MeshGmshFromShape|FEM mesh from shape by Gmsh]]: Generates a finite element mesh for a model using Gmsh.<br />
<br />
<!--T:109--><br />
* [[Image:FEM_MeshBoundaryLayer.svg|32px]] [[FEM_MeshBoundaryLayer|FEM mesh boundary layer]]: Creates anisotropic meshes for accurate calculations near boundaries.<br />
<br />
<!--T:141--><br />
* [[Image:FEM_MeshRegion.svg|32px]] [[FEM_MeshRegion|FEM mesh region]]: Creates a localized area(s) to mesh which highly optimizes analysis time.<br />
<br />
<!--T:110--><br />
* [[Image:FEM_MeshGroup.svg|32px]] [[FEM_MeshGroup|FEM mesh group]]: Groups and labels elements of a mesh (vertex, edge, surface) together, useful for exporting the mesh to external solvers.<br />
<br />
<!--T:111--><br />
* [[Image:FEM_CreateNodesSet.svg|32px]] [[FEM_CreateNodesSet|Nodes set]]: Creates/defines a node set from FEM mesh.<br />
<br />
<!--T:112--><br />
* [[Image:FEM_FemMesh2Mesh.svg|32px]] [[FEM_FemMesh2Mesh|FEM mesh to mesh]]: Convert the surface of a FEM mesh to a mesh.<br />
<br />
== Menu: Solve == <!--T:74--><br />
<br />
<!--T:113--><br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]]: Creates a new solver for this analysis. In most cases the solver is created together with the analysis.<br />
<br />
<!--T:114--><br />
* [[Image:FEM_SolverCalculiX.svg|32px]] [[FEM_SolverCalculiX|Solver CalculiX (new framework)]]: Same as the original framework [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|Solver CalculiX Standard]] with extra checks.<br />
<br />
<!--T:115--><br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]]: Creates the solver controller for Elmer. It is independent from other solver objects.<br />
<br />
<!--T:170--><br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Solver Mystran]]: Enables usage of the [https://www.mystran.com MYSTRAN] solver. {{Version|0.20}}<br />
<br />
<!--T:116--><br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Solver Z88]]: Creates the solver controller for Z88. It is independent from other solver objects.<br />
<br />
<!--T:185--><br />
* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform nonlinear mechanical analyses (deformations). {{Version|1.0}}<br />
<br />
<!--T:118--><br />
* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform mechanical analyses.<br />
<br />
<!--T:179--><br />
* [[Image:FEM_CompEmEquations.png|48px]] [[FEM_CompEmEquations|Electromagnetic equations]]: This is an icon menu in the FEM Equations toolbar that holds the following equations:<br />
<br />
<!--T:119--><br />
:* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform electrostatic analyses.<br />
<br />
<!--T:166--><br />
:* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate the electric force on surfaces. {{Version|0.19}}<br />
<br />
<!--T:180--><br />
:* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics. {{Version|1.0}}<br />
<br />
<!--T:181--><br />
:* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to calculate magnetodynamics in 2D. {{Version|1.0}}<br />
<br />
<!--T:121--><br />
* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flow analyses.<br />
<br />
<!--T:120--><br />
* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform flux analyses.<br />
<br />
<!--T:117--><br />
* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]: Equation for the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Solver Elmer]] to perform heat transfer analyses.<br />
<br />
<!--T:122--><br />
* [[Image:FEM_SolverControl.svg|32px]] [[FEM_SolverControl|Solver job control]]: Opens the menu to adjust and start the selected solver.<br />
<br />
<!--T:123--><br />
* [[Image:FEM_SolverRun.svg|32px]] [[FEM_SolverRun|Run solver calculations]]: Runs the selected solver of the active analysis.<br />
<br />
== Menu: Results == <!--T:75--><br />
<br />
<!--T:124--><br />
* [[Image:FEM_ResultsPurge.svg|32px]] [[FEM_ResultsPurge|Purge results]]: Deletes the results of the active analysis.<br />
<br />
<!--T:125--><br />
* [[Image:FEM_ResultShow.svg|24px]] [[FEM_ResultShow|Show result]]: Used to display the result of an analysis. This dialog is not available for the [[FEM_SolverElmer|Solver Elmer]] as this solver visualizes using the [[FEM_PostPipelineFromResult|Post pipeline from result]] object only.<br />
<br />
<!--T:126--><br />
* [[Image:FEM_PostApplyChanges.svg|32px]] [[FEM_PostApplyChanges|Apply changes to pipeline]]: Toggles if changes to pipelines and filters are applied immediately.<br />
<br />
<!--T:127--><br />
* [[Image:FEM_PostPipelineFromResult.svg|32px]] [[FEM_PostPipelineFromResult|Post pipeline from result]]: Used to add a new graphical representation of FEM analysis results (color scale and more display options).<br />
<br />
<!--T:128--><br />
* [[Image:FEM_PostFilterWarp.svg|32px]] [[FEM_PostFilterWarp|Warp filter]]: Used to visualize the scaled deformed shape of the model.<br />
<br />
<!--T:129--><br />
* [[Image:FEM_PostFilterClipScalar.svg|32px]] [[FEM_PostFilterClipScalar|Scalar clip filter]]: Used to clip a field with a specified scalar value.<br />
<br />
<!--T:130--><br />
* [[Image:FEM_PostFilterCutFunction.svg|32px]] [[FEM_PostFilterCutFunction|Function cut filter]]: Used to display the results on a sphere or a plane cutting through the model.<br />
<br />
<!--T:131--><br />
* [[Image:FEM_PostFilterClipRegion.svg|32px]] [[FEM_PostFilterClipRegion|Region clip filter]]: Used to clip a field with a sphere or a plane cutting through the model.<br />
<br />
<!--T:182--><br />
* [[Image:FEM_PostFilterContours.svg|32px]] [[FEM_PostFilterContours|Contours filter]]: Used to display iso-lines (for analyses in 2D) or iso-contours. {{Version|1.0}}<br />
<br />
<!--T:132--><br />
* [[Image:FEM_PostFilterDataAlongLine.svg|32px]] [[FEM_PostFilterDataAlongLine|Line clip filter]]: Used to plot the values of a field along a specified line.<br />
<br />
<!--T:133--><br />
* [[Image:FEM_PostFilterLinearizedStresses.svg|32px]] [[FEM_PostFilterLinearizedStresses|Stress linearization plot]]: Creates a stress linearization plot.<br />
<br />
<!--T:134--><br />
* [[Image:FEM_PostFilterDataAtPoint.svg|32px]] [[FEM_PostFilterDataAtPoint|Data at point clip filter]]: Used to display value of a selected field at a given point.<br />
<br />
<!--T:135--><br />
* [[Image:FEM_CompPostCreateFunctions.png|48px]] [[FEM_PostCreateFunctions|Filter functions]]: This is an icon menu in the FEM Results toolbar that holds the following commands:<br />
<br />
<!--T:174--><br />
:* [[Image:FEM_PostCreateFunctionPlane.svg|32px]] [[FEM_PostCreateFunctionPlane|Filter function plane]]: Cuts the result mesh with a plane.<br />
<br />
<!--T:175--><br />
:* [[Image:FEM_PostCreateFunctionSphere.svg|32px]] [[FEM_PostCreateFunctionSphere|Filter function sphere]]: Cuts the result mesh with a sphere.<br />
<br />
<!--T:183--><br />
:* [[Image:FEM_PostCreateFunctionCylinder.svg|32px]] [[FEM_PostCreateFunctionCylinder|Filter function cylinder]]: Cuts the result mesh with a cylinder. {{Version|1.0}}<br />
<br />
<!--T:184--><br />
:* [[Image:FEM_PostCreateFunctionBox.svg|32px]] [[FEM_PostCreateFunctionBox|Filter function box]]: Cuts the result mesh with a box. {{Version|1.0}}<br />
<br />
== Menu: Utilities == <!--T:76--><br />
<br />
<!--T:136--><br />
* [[Image:FEM_ClippingPlaneAdd.svg|32px]] [[FEM_ClippingPlaneAdd|Clipping plane on face]]: Adds a clipping plane for the whole model view.<br />
<br />
<!--T:137--><br />
* [[Image:FEM_ClippingPlaneRemoveAll.svg|32px]] [[FEM_ClippingPlaneRemoveAll|Remove all clipping planes]]: Removes all existing [[FEM_ClippingPlaneAdd|clipping planes]].<br />
<br />
<!--T:158--><br />
* [[Image:FEM_Examples.svg|32px]] [[FEM_Examples|Open FEM examples]]: Open the GUI to access FEM examples.<br />
<br />
== Context Menu == <!--T:77--><br />
<br />
<!--T:138--><br />
* [[Image:FEM_MeshClear.svg|32px]] [[FEM_MeshClear|Clear FEM mesh]]: Deletes the mesh file from the FreeCAD file. Useful to make a FreeCAD file lighter.<br />
<br />
<!--T:139--><br />
* [[Image:FEM_MeshDisplayInfo.svg|32px]] [[FEM_MeshDisplayInfo|Display FEM mesh info]]: Displays basic statistics of existing mesh - number of nodes and elements of each type.<br />
<br />
== Preferences == <!--T:78--><br />
<br />
<!--T:140--><br />
* [[Image:Std_DlgPreferences.svg|32px]] [[FEM_Preferences|Preferences...]]: Preferences available in FEM Tools.<br />
<br />
== Information == <!--T:47--><br />
<br />
<!--T:147--><br />
The following pages explain different topics of the FEM Workbench.<br />
<br />
<!--T:148--><br />
[[FEM_Install|FEM Install]]: a detailed description on how to set up the external programs used in the workbench.<br />
<br />
<!--T:51--><br />
[[FEM_Mesh|FEM Mesh]]: further information on obtaining a mesh for finite element analysis.<br />
<br />
<!--T:62--><br />
[[FEM_Solver|FEM Solver]]: further information on the different solvers available in the workbench, and those that could be used in the future.<br />
<br />
<!--T:53--><br />
[[FEM_CalculiX|FEM CalculiX]]: further information on CalculiX, the default solver used in the workbench for structural analysis.<br />
<br />
<!--T:63--><br />
[[FEM_Concrete|FEM Concrete]]: interesting information on the topic of simulating concrete structures.<br />
<br />
== Tutorials == <!--T:172--><br />
<br />
<!--T:46--><br />
Tutorial 1: [[FEM_CalculiX_Cantilever_3D|FEM CalculiX Cantilever 3D]]; basic simply supported beam analysis.<br />
<br />
<!--T:54--><br />
Tutorial 2: [[FEM_tutorial|FEM Tutorial]]; simple tension analysis of a structure.<br />
<br />
<!--T:56--><br />
Tutorial 3: [[FEM_Tutorial_Python|FEM Tutorial Python]]; set up the cantilever example entirely through scripting in Python, including the mesh.<br />
<br />
<!--T:61--><br />
Tutorial 4: [[FEM Shear of a Composite Block|FEM Shear of a Composite Block]]; see the deformation of a block that is comprised of two materials.<br />
<br />
<!--T:155--><br />
Tutorial 5: [[Transient_FEM_analysis|Transient FEM analysis]]<br />
<br />
<!--T:157--><br />
Tutorial 6: [[Post-Processing_of_FEM_Results_with_Paraview|Post-Processing of FEM Results with Paraview]]<br />
<br />
<!--T:159--><br />
Tutorial 7: [[FEM_Example_Capacitance_Two_Balls|FEM Example Capacitance Two Balls]]; Elmer's GUI tutorial 6 "Electrostatics Capacitance Two Balls" using FEM Examples.<br />
<br />
<!--T:55--><br />
Coupled thermal mechanical analysis tutorials by [https://opensimsa.github.io/training.html openSIM]<br />
<br />
<!--T:58--><br />
Video tutorial 1: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499#p158353 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:59--><br />
Video tutorial 2: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20499&start=10#p162321 FEM video for beginner] (including YouTube link)<br />
<br />
<!--T:57--><br />
Many video tutorials: [https://www.youtube.com/channel/UCnvFCm2BbXOVI3ObfXcxXhw anisim Open Source Engineering Software] (in German)<br />
<br />
== Extending the FEM Workbench == <!--T:149--><br />
<br />
<!--T:150--><br />
The FEM Workbench is under constant development. An objective of the project is to find ways to easily interact with various FEM solvers, so that the end user can streamline the process of creating, meshing, simulating, and optimizing an engineering design problem, all within FreeCAD.<br />
<br />
<!--T:151--><br />
The following information is aimed at power users and developers who want to extend the FEM Workbench in different ways. Familiarity with C++ and Python is expected, and also some knowledge of the "document object" system used in FreeCAD is necessary; this information is available in the [[Power_users_hub|Power users hub]] and the [[Developer_hub|Developer hub]]. Please notice that since FreeCAD is under active development, some articles may be too old, and thus obsolete. The most up to date information is discussed in the [https://forum.freecadweb.org/index.php FreeCAD forums], in the Development section. For FEM discussions, advice or assistance in extending the workbench, the reader should refer to the [https://forum.freecadweb.org/viewforum.php?f=18 FEM subforum].<br />
<br />
<!--T:60--><br />
The following articles explain how the workbench can be extended, for example, by adding new types of boundary conditions (constraints), or equations.<br />
* [[Extend_FEM_Module|Extend FEM Module]]<br />
* [[Onboarding_FEM_Devs|Onboarding FEM Devs]] attempts to orient new devs on how to contribute to the FEM workbench.<br />
* [[Add_FEM_Constraint_Tutorial|Add FEM Constraint Tutorial]]<br />
* [[Add_FEM_Equation_Tutorial|Add FEM Equation Tutorial]]<br />
<br />
<!--T:152--><br />
A developer's guide has been written to help power users in understanding the complex FreeCAD codebase and the interactions between the core elements and the individual workbenches. The book is hosted at github so multiple users can contribute to it and keep it updated.<br />
* [https://forum.freecadweb.org/viewtopic.php?t=17581 Early preview of ebook: Module developer' guide to FreeCAD source] forum thread.<br />
* [https://github.com/qingfengxia/FreeCAD_Mod_Dev_Guide FreeCAD Mod Dev Guide] github repository.<br />
<br />
== Extending the FEM Workbench documentation == <!--T:167--><br />
<br />
<!--T:168--><br />
* More information regarding extending or missing FEM documentation can be found in the forum: [https://forum.freecadweb.org/viewtopic.php?f=18&t=20823 FEM documentation missing on the Wiki]<br />
<br />
<!--T:49--><br />
{{Docnav<br />
|[[Drawing_Workbench|Drawing Workbench]]<br />
|[[Image_Workbench|Image Workbench]]<br />
|IconL=Workbench_Drawing.svg<br />
|IconR=Workbench_Image.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Workbenches{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Preferences&diff=1245913FEM Preferences2023-03-26T19:08:59Z<p>Uwestoehr: add more info</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<!--T:1--><br />
The preferences screen of the [[FEM_Workbench|FEM Workbench]] are found in the [[Preferences_Editor|Preferences Editor]], {{MenuCommand|Edit → Preferences → FEM}}.<br />
<br />
<!--T:8--><br />
There are several tabs in the FEM workbench preferences, starting with the '''General''' configuration of the workbench. The rest of the tabs control how FEM interacts with supported external solvers. <br />
<br />
<!--T:15--><br />
The current supported external solvers are:<br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|CalculiX]]<br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer]]<br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Mystran]] ({{Version|0.20}})<br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Z88]]<br />
<br />
==General== <!--T:2--><br />
<br />
<!--T:16--><br />
On the ''General'' tab you can specify the following:<br />
<br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Working directory}}<br />
| In what directory the mesh and solver files should be stored<br />
|-<br />
| {{MenuCommand|Create mesh groups}}<br />
| When there are several meshes they will be grouped<br />
|-<br />
| {{MenuCommand|Keep results on calculation re-run}}<br />
| ??<br />
|-<br />
| {{MenuCommand|Restore result dialog settings}}<br />
| If checked, the [[FEM_ResultShow|Show result dialog]] is opened with the last used dialog settings<br />
|-<br />
| {{MenuCommand|Hide constraints when open result dialog}}<br />
| The constraints will be hidden in the model view when the [[FEM_ResultShow|Show result dialog]] is opened<br />
|-<br />
| {{MenuCommand|Default solver}}<br />
| Default solver to be added when adding an [[FEM_Analysis|Analysis container]]. ({{Version|1.0}})<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_01.png]]<br />
<translate><br />
<br />
==Gmsh== <!--T:4--><br />
<br />
<!--T:17--><br />
On the ''Gmsh'' tab you can specify the following:<br />
<br />
<!--T:18--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of [[FEM_MeshGmshFromShape|Gmsh]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Gmsh binary path}}<br />
| The path to the the binary of [[FEM_MeshGmshFromShape|Gmsh]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_03.png]]<br />
<translate><br />
<br />
==CalculiX== <!--T:3--><br />
<br />
<!--T:19--><br />
On the ''CalculiX'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_02.png]]<br />
<translate><br />
<br />
==Elmer== <!--T:6--><br />
<br />
<!--T:20--><br />
On the ''Elmer'' tab you can specify the following:<br />
<br />
<!--T:21--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|ElmerGrid: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerGrid binary path}}<br />
| The path to the the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|ElmerSolver: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the solver binary of [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerSolver binary path}}<br />
| The path to the the solver binary of [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|CPU cores to be used}}<br />
| The number of CPU cores that will be used to perform the solving.<br />
'''Important:''' Elmer divides the mesh into portions. The number of portions is equal to the number of CPU cores used. This can result in side-effects:<br />
* Depending on your mesh a smaller number of CPU cores can run faster than using more cores.<br />
* In some cases using e.g. 12 cores does not converge while 8 cores will work fine. The reason is that at some point the mesh portions become too small.<br />
So it is often necessary to adjust the number of cores, depending on the mesh.<br />
<br />
<!--T:32--><br />
'''Known limitation:''' For some simulation types you first need to install Elmer modules to enable multi-threading. Check the Elmer report for info about this. A typical case is that for direct solving one has to install the MUMPS module.<br />
|-<br />
| {{MenuCommand|Filter results}}<br />
| The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_05.png]]<br />
<translate><br />
<br />
==Mystran== <!--T:22--><br />
<br />
<!--T:23--><br />
On the ''Mystran'' tab you can specify the following:<br />
<br />
<!--T:24--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the [[FEM_SolverMystran|Mystran]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Mystran binary path}}<br />
| The path to the the binary of the [[FEM_SolverMystran|Mystran]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Mystran.png]]<br />
<translate><br />
<br />
==Z88== <!--T:5--><br />
<br />
<!--T:26--><br />
On the ''Z88'' tab you can specify the following:<br />
<br />
<!--T:27--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|z88r binary path}}<br />
| The path to the the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]]<br />
|-<br />
| {{MenuCommand|Solver method}}<br />
| The solver method used by the [[FEM_SolverZ88|Z88 solver]] for new simulations.<br />
|-<br />
| {{MenuCommand|Max places in stiffness matrix}}<br />
| This is relevant when the solver method ''Simple Cholesky'' is used. After starting the solver, it might tell you that you need to increase the ''MAXGS'' value. In this case increase the max places and re-run the solver.<br />
|-<br />
| {{MenuCommand|Max places in coincidence vector}}<br />
| This is relevant when one of the iterative solver methods is used. After starting the solver, it might tell you that you need to increase the ''MAXKOI'' value. In this case increase the max places and re-run the solver.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_04.png]]<br />
<translate><br />
<br />
==Material== <!--T:28--><br />
<br />
<!--T:29--><br />
On the ''Material'' tab you can specify the following:<br />
<br />
<!--T:30--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Use built-in materials}}<br />
| The cards built-in to FreeCAD will be listed as available.<br />
|-<br />
| {{MenuCommand|Use materials from Materials directory in user's FreeCAD preference directory}}<br />
| The cards from FreeCAD's preferences directory will be listed as available. On Windows, that would for example be this folder:<br />
''C:\Users\<username>\AppData\Roaming\FreeCAD\Material''<br />
|-<br />
| {{MenuCommand|Use materials from user defined directory}}<br />
| Also material cards also from the specified directory will be listed as available.<br />
|-<br />
| {{MenuCommand|Delete card duplicates}}<br />
| Duplicate cards will be deleted from the displayed material card list.<br />
|-<br />
| {{MenuCommand|Sort by resources}}<br />
| Material cards will appear sorted by their resources (locations). If unchecked, they will be sorted by their name.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Material.png]]<br />
<br />
<br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Preferences{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Preferences&diff=1245904FEM Preferences2023-03-26T18:25:29Z<p>Uwestoehr: start documenting of general preferences - more to come</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<!--T:1--><br />
The preferences screen of the [[FEM_Workbench|FEM Workbench]] are found in the [[Preferences_Editor|Preferences Editor]], {{MenuCommand|Edit → Preferences → FEM}}.<br />
<br />
<!--T:8--><br />
There are several tabs in the FEM workbench preferences, starting with the '''General''' configuration of the workbench. The rest of the tabs control how FEM interacts with supported external solvers. <br />
<br />
<!--T:15--><br />
The current supported external solvers are:<br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|CalculiX]]<br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer]]<br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Mystran]] ({{Version|0.20}})<br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Z88]]<br />
<br />
==General== <!--T:2--><br />
<br />
<!--T:16--><br />
On the ''General'' tab you can specify the following:<br />
<br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Working directory}}<br />
| In what directory the mesh and solver files should be stored<br />
|-<br />
| {{MenuCommand|Create mesh groups}}<br />
| When there are several meshes they will be grouped<br />
|-<br />
| {{MenuCommand|Keep results on calculation re-run}}<br />
| ??<br />
|-<br />
| {{MenuCommand|Restore result dialog settings}}<br />
| ??<br />
|-<br />
| {{MenuCommand|Hide constraints when open result dialog}}<br />
| The constraints will be hidden in the model view when the ?? is opened<br />
|-<br />
| {{MenuCommand|Default solver}}<br />
| Default solver to be added when adding an [[FEM_Analysis|Analysis container]]. ({{Version|1.0}})<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_01.png]]<br />
<translate><br />
<br />
==Gmsh== <!--T:4--><br />
<br />
<!--T:17--><br />
On the ''Gmsh'' tab you can specify the following:<br />
<br />
<!--T:18--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of [[FEM_MeshGmshFromShape|Gmsh]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Gmsh binary path}}<br />
| The path to the the binary of [[FEM_MeshGmshFromShape|Gmsh]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_03.png]]<br />
<translate><br />
<br />
==CalculiX== <!--T:3--><br />
<br />
<!--T:19--><br />
On the ''CalculiX'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_02.png]]<br />
<translate><br />
<br />
==Elmer== <!--T:6--><br />
<br />
<!--T:20--><br />
On the ''Elmer'' tab you can specify the following:<br />
<br />
<!--T:21--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|ElmerGrid: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerGrid binary path}}<br />
| The path to the the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|ElmerSolver: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the solver binary of [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerSolver binary path}}<br />
| The path to the the solver binary of [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|CPU cores to be used}}<br />
| The number of CPU cores that will be used to perform the solving.<br />
'''Important:''' Elmer divides the mesh into portions. The number of portions is equal to the number of CPU cores used. This can result in side-effects:<br />
* Depending on your mesh a smaller number of CPU cores can run faster than using more cores.<br />
* In some cases using e.g. 12 cores does not converge while 8 cores will work fine. The reason is that at some point the mesh portions become too small.<br />
So it is often necessary to adjust the number of cores, depending on the mesh.<br />
<br />
<!--T:32--><br />
'''Known limitation:''' For some simulation types you first need to install Elmer modules to enable multi-threading. Check the Elmer report for info about this. A typical case is that for direct solving one has to install the MUMPS module.<br />
|-<br />
| {{MenuCommand|Filter results}}<br />
| The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_05.png]]<br />
<translate><br />
<br />
==Mystran== <!--T:22--><br />
<br />
<!--T:23--><br />
On the ''Mystran'' tab you can specify the following:<br />
<br />
<!--T:24--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the [[FEM_SolverMystran|Mystran]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Mystran binary path}}<br />
| The path to the the binary of the [[FEM_SolverMystran|Mystran]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Mystran.png]]<br />
<translate><br />
<br />
==Z88== <!--T:5--><br />
<br />
<!--T:26--><br />
On the ''Z88'' tab you can specify the following:<br />
<br />
<!--T:27--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|z88r binary path}}<br />
| The path to the the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]]<br />
|-<br />
| {{MenuCommand|Solver method}}<br />
| The solver method used by the [[FEM_SolverZ88|Z88 solver]] for new simulations.<br />
|-<br />
| {{MenuCommand|Max places in stiffness matrix}}<br />
| This is relevant when the solver method ''Simple Cholesky'' is used. After starting the solver, it might tell you that you need to increase the ''MAXGS'' value. In this case increase the max places and re-run the solver.<br />
|-<br />
| {{MenuCommand|Max places in coincidence vector}}<br />
| This is relevant when one of the iterative solver methods is used. After starting the solver, it might tell you that you need to increase the ''MAXKOI'' value. In this case increase the max places and re-run the solver.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_04.png]]<br />
<translate><br />
<br />
==Material== <!--T:28--><br />
<br />
<!--T:29--><br />
On the ''Material'' tab you can specify the following:<br />
<br />
<!--T:30--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Use built-in materials}}<br />
| The cards built-in to FreeCAD will be listed as available.<br />
|-<br />
| {{MenuCommand|Use materials from Materials directory in user's FreeCAD preference directory}}<br />
| The cards from FreeCAD's preferences directory will be listed as available. On Windows, that would for example be this folder:<br />
''C:\Users\<username>\AppData\Roaming\FreeCAD\Material''<br />
|-<br />
| {{MenuCommand|Use materials from user defined directory}}<br />
| Also material cards also from the specified directory will be listed as available.<br />
|-<br />
| {{MenuCommand|Delete card duplicates}}<br />
| Duplicate cards will be deleted from the displayed material card list.<br />
|-<br />
| {{MenuCommand|Sort by resources}}<br />
| Material cards will appear sorted by their resources (locations). If unchecked, they will be sorted by their name.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Material.png]]<br />
<br />
<br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Preferences{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=File:Preference_Fem_Tab_01.png&diff=1245903File:Preference Fem Tab 01.png2023-03-26T18:13:20Z<p>Uwestoehr: Uwestoehr uploaded a new version of File:Preference Fem Tab 01.png</p>
<hr />
<div>Preference_Fem_Tab_01.png</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_Preferences&diff=1245898FEM Preferences2023-03-26T18:09:21Z<p>Uwestoehr: </p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<!--T:1--><br />
The preferences screen of the [[FEM_Workbench|FEM Workbench]] are found in the [[Preferences_Editor|Preferences Editor]], {{MenuCommand|Edit → Preferences → FEM}}.<br />
<br />
<!--T:8--><br />
There are several tabs in the FEM workbench preferences, starting with the '''General''' configuration of the workbench. The rest of the tabs control how FEM interacts with supported external solvers. <br />
<br />
<!--T:15--><br />
The current supported external solvers are:<br />
* [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|CalculiX]]<br />
* [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|Elmer]]<br />
* [[Image:FEM_SolverMystran.svg|32px]] [[FEM_SolverMystran|Mystran]] ({{Version|0.20}})<br />
* [[Image:FEM_SolverZ88.svg|32px]] [[FEM_SolverZ88|Z88]]<br />
<br />
==General== <!--T:2--><br />
<br />
<!--T:16--><br />
On the ''General'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_01.png]]<br />
<translate><br />
<br />
==Gmsh== <!--T:4--><br />
<br />
<!--T:17--><br />
On the ''Gmsh'' tab you can specify the following:<br />
<br />
<!--T:18--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of [[FEM_MeshGmshFromShape|Gmsh]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Gmsh binary path}}<br />
| The path to the the binary of [[FEM_MeshGmshFromShape|Gmsh]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_03.png]]<br />
<translate><br />
<br />
==CalculiX== <!--T:3--><br />
<br />
<!--T:19--><br />
On the ''CalculiX'' tab you can specify the following:<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_02.png]]<br />
<translate><br />
<br />
==Elmer== <!--T:6--><br />
<br />
<!--T:20--><br />
On the ''Elmer'' tab you can specify the following:<br />
<br />
<!--T:21--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|ElmerGrid: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerGrid binary path}}<br />
| The path to the the binary of the grid writer utility of the [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|ElmerSolver: Search in known binary directories}}<br />
| If checked, FreeCAD will look for the solver binary of [[FEM_SolverElmer|Elmer]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|ElmerSolver binary path}}<br />
| The path to the the solver binary of [[FEM_SolverElmer|Elmer]]<br />
|-<br />
| {{MenuCommand|CPU cores to be used}}<br />
| The number of CPU cores that will be used to perform the solving.<br />
'''Important:''' Elmer divides the mesh into portions. The number of portions is equal to the number of CPU cores used. This can result in side-effects:<br />
* Depending on your mesh a smaller number of CPU cores can run faster than using more cores.<br />
* In some cases using e.g. 12 cores does not converge while 8 cores will work fine. The reason is that at some point the mesh portions become too small.<br />
So it is often necessary to adjust the number of cores, depending on the mesh.<br />
<br />
<!--T:32--><br />
'''Known limitation:''' For some simulation types you first need to install Elmer modules to enable multi-threading. Check the Elmer report for info about this. A typical case is that for direct solving one has to install the MUMPS module.<br />
|-<br />
| {{MenuCommand|Filter results}}<br />
| The mesh volume regions processed by each CPU core will be merged to make the volume boundaries invisible.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_05.png]]<br />
<translate><br />
<br />
==Mystran== <!--T:22--><br />
<br />
<!--T:23--><br />
On the ''Mystran'' tab you can specify the following:<br />
<br />
<!--T:24--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary of the [[FEM_SolverMystran|Mystran]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|Mystran binary path}}<br />
| The path to the the binary of the [[FEM_SolverMystran|Mystran]]<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Mystran.png]]<br />
<translate><br />
<br />
==Z88== <!--T:5--><br />
<br />
<!--T:26--><br />
On the ''Z88'' tab you can specify the following:<br />
<br />
<!--T:27--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Search in known binary directories}}<br />
| If checked, FreeCAD will look for the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]] in known (usual) directories<br />
|-<br />
| {{MenuCommand|z88r binary path}}<br />
| The path to the the binary named ''z88r'' of the [[FEM_SolverZ88|Z88 solver]]<br />
|-<br />
| {{MenuCommand|Solver method}}<br />
| The solver method used by the [[FEM_SolverZ88|Z88 solver]] for new simulations.<br />
|-<br />
| {{MenuCommand|Max places in stiffness matrix}}<br />
| This is relevant when the solver method ''Simple Cholesky'' is used. After starting the solver, it might tell you that you need to increase the ''MAXGS'' value. In this case increase the max places and re-run the solver.<br />
|-<br />
| {{MenuCommand|Max places in coincidence vector}}<br />
| This is relevant when one of the iterative solver methods is used. After starting the solver, it might tell you that you need to increase the ''MAXKOI'' value. In this case increase the max places and re-run the solver.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_04.png]]<br />
<translate><br />
<br />
==Material== <!--T:28--><br />
<br />
<!--T:29--><br />
On the ''Material'' tab you can specify the following:<br />
<br />
<!--T:30--><br />
{| class="wikitable float-right mw-collapsible mw-uncollapsed"<br />
!style="width: 33%;"|Name<br />
!style="width: 66%;"|Description<br />
|-<br />
| {{MenuCommand|Use built-in materials}}<br />
| The cards built-in to FreeCAD will be listed as available.<br />
|-<br />
| {{MenuCommand|Use materials from Materials directory in user's FreeCAD preference directory}}<br />
| The cards from FreeCAD's preferences directory will be listed as available. On Windows, that would for example be this folder:<br />
''C:\Users\<username>\AppData\Roaming\FreeCAD\Material''<br />
|-<br />
| {{MenuCommand|Use materials from user defined directory}}<br />
| Also material cards also from the specified directory will be listed as available.<br />
|-<br />
| {{MenuCommand|Delete card duplicates}}<br />
| Duplicate cards will be deleted from the displayed material card list.<br />
|-<br />
| {{MenuCommand|Sort by resources}}<br />
| Material cards will appear sorted by their resources (locations). If unchecked, they will be sorted by their name.<br />
|}<br />
<br />
</translate><br />
[[File:Preference_Fem_Tab_Material.png]]<br />
<br />
<br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Preferences{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245895FEM SolverElmer SolverSettings2023-03-26T18:02:32Z<p>Uwestoehr: clarification</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient simulations the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over the solver time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245894FEM SolverElmer SolverSettings2023-03-26T18:01:38Z<p>Uwestoehr: wording</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient simulations the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. To get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245893FEM SolverElmer SolverSettings2023-03-26T18:00:24Z<p>Uwestoehr: add version info</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient simulations the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. Therefore, to get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''. {{Version|1.0}}<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_ConstraintInitialFlowVelocity&diff=1245892FEM ConstraintInitialFlowVelocity2023-03-26T17:57:31Z<p>Uwestoehr: improve wording to make it more clear</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_ConstraintMagnetization|Constraint magnetization]]<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintMagnetization.svg<br />
|IconR=FEM_ConstraintInitialPressure.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ConstraintInitialFlowVelocity<br />
|MenuLocation=Model → Fluid Constraints → Constraint initial flow velocity<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|SeeAlso=[[FEM_ConstraintFlowVelocity|FEM Constraint flow velocity]], [[FEM_ConstraintInitialPressure|FEM Constraint initial pressure]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
Creates an initial flow velocity constraint for a fluid flow analysis.<br />
<br />
==Usage== <!--T:10--> <br />
<br />
<!--T:9--><br />
# Either press the toolbar button {{Button|[[Image:FEM_ConstraintInitialFlowVelocity.svg|16px]] '''FEM ConstraintInitialFlowVelocity'''}} or select the menu {{MenuCommand|Model → Fluid Constraints → [[Image:FEM_ConstraintInitialFlowVelocity.svg|16px]] Constraint initial flow velocity}}.<br />
# Enter an initial flow velocity value for the analysis. The value is entered as a combination of the 3 main cartesian vectors components (X,Y,Z).<br />
# For a 3D analysis, select a 'solid' (body) from your model, for a 2D analysis select a face. However, it is also possible to select a face (e.g. the inlet of a pipe) in 3D or an edge in 2D.<br />
<br />
==Formulas== <!--T:15--><br />
<br />
<!--T:16--><br />
For a description how to input formulas, see section ''Formulas'' in the page for the [[FEM_ConstraintFlowVelocity#Formulas|Flow velocity constraint]].<br />
<br />
==Notes== <!--T:13--> <br />
<br />
<!--T:14--><br />
In simple analyses, it is not necessary to specify the initial flow velocity, however it is recommended as best practice.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_ConstraintMagnetization|Constraint magnetization]]<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintMagnetization.svg<br />
|IconR=FEM_ConstraintInitialPressure.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationDeformation&diff=1245889FEM EquationDeformation2023-03-26T17:55:23Z<p>Uwestoehr: The menu is correct, the elasticity equation page will be updated once FC 1.0 is out</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationDeformation<br />
|MenuLocation=Solve → Mechanical equations → Deformation equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=1.0<br />
|SeeAlso=[[FEM_EquationElasticity|Elasticity equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:5--><br />
<br />
<!--T:6--><br />
This equation describes the nonlinear elastic deformation of rigid bodies.<br />
<br />
<!--T:7--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Finite Elasticity''.<br />
<br />
==Usage== <!--T:8--><br />
<br />
<!--T:9--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationDeformation.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Deformation equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
==Solver Settings== <!--T:10--><br />
<br />
<!--T:11--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:12--><br />
The deformation equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Initialize State Variables}}: See the Elmer manual for more info.<br />
* {{PropertyData|Mixed Formulation}}: See the Elmer manual for more info.<br />
* {{PropertyData|Neo Hookean Model}}: Uses the neo-Hookean material model.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Change there the ''3'' to ''2'' if you have a 2D geometry. For the special case that you have {{PropertyData|Mixed Formulation}} and {{PropertyData|Neo Hookean Model}} set to ''true'', the variable number must be geometry dimensions + 1, so for 3D geometry the ''3'' must be changed to ''4''.<br />
<br />
<!--T:13--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:14--><br />
<br />
<!--T:15--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:16--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:17--><br />
<br />
<!--T:18--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Results== <!--T:19--><br />
<br />
<!--T:20--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available.<br />
<br />
<br />
<!--T:21--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1245888FEM EquationElasticity2023-03-26T17:54:01Z<p>Uwestoehr: add important note</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
'''Note''': For analyses of nonlinear deformation you must use the [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]] ({{Version|1.0}}). The Elasticity equation is only for linear deformations.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|constraint fixed]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use ''Umfpack'', the only direct method for parallel solving is ''MUMPS''.</br>Also note that iterative solving is not recommended for eigenmode analysis. Therefore either only use one CPU core or install the ''MUMPS'' module to Elmer.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Compile_on_Windows&diff=1245689Compile on Windows2023-03-26T07:51:07Z<p>Uwestoehr: replace outdated note by new one</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:109--><br />
{{Docnav<br />
|[[Licence|Licence]]<br />
|[[Compile_on_Linux|Compile on Linux]]<br />
}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page explains step by step '''how to compile FreeCAD 0.19 or newer on Windows''' using Microsoft's MSVC compiler. For information on using MSYS2/MinGW see [[Compile_on_MinGW|Compile on MinGW]]. For other platforms see [[Compiling|Compiling]].<br />
<br />
== Prerequisites == <!--T:2--><br />
<br />
<!--T:136--><br />
Compiling FreeCAD on Windows requires several tools and libraries.<br />
<br />
===Required=== <!--T:100--><br />
<br />
<!--T:226--><br />
* A compiler. FreeCAD is tested with Visual Studio (MSVC)—other compilers may work, but instructions for use are not included here. Fore more details, see the section [[#Compiler|Compiler]] below.<br />
<br />
<!--T:116--><br />
* [http://git-scm.com/ Git] (There are also GUI frontends available for Git, see the next section.)<br />
<br />
<!--T:170--><br />
* [https://cmake.org/download/ CMake] version 3.11.x or newer. </br> ''Hint:'' Choosing the option ''Add CMake to the system PATH for all users'' when installing CMake will make CMake accessible from the Windows command prompt, which can be useful.<br />
<br />
<!--T:172--><br />
* The [https://github.com/FreeCAD/FreeCAD-LibPack LibPack]. This is a single package containing all of the libraries necessary to compile FreeCAD on Windows. Download the version of the LibPack that corresponds to the version of FreeCAD you want to compile. To compile FreeCAD 0.20 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/2.6 LibPack version 2.6], for FreeCAD 0.19 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/1.0 LibPack version 1.0]. Extract the LibPack to a convenient location. (If your computer does not recognize the .7z extension, you must install the program [https://www.7-zip.org 7-zip].) </br> '''Note''': It is highly recommended to compile FreeCAD with the compiler version the LibPack is designed for. For example, you might run into problems compiling FreeCAD 0.20 using MSVC&nbsp;2017 because the LibPack is designed to be built with MSVC&nbsp;2019 or newer.</br>To update your LibPack later, see the section [[#Updating_the_LibPack|Updating the LibPack]].<br />
<br />
===Optional programs=== <!--T:137--><br />
<br />
<!--T:176--><br />
* A GUI frontend for Git. There are several frontends available, see [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. The main benefit of a frontend is that you don't have to learn the Git commands to get the source code of FreeCAD or to send patches to the GitHub repository of FreeCAD.<br />
<br />
<!--T:177--><br />
In the following we describe source code handling using the [https://tortoisegit.org/ TortoiseGit] frontend. This frontend integrates directly into Windows file explorer and has a large user community to get help in case you have problems.<br />
<br />
<!--T:178--><br />
* [http://sourceforge.net/projects/nsis/ NSIS] is used to generate the FreeCAD Windows installer.<br />
<br />
===Source code=== <!--T:98--><br />
<br />
<!--T:143--><br />
Now you can get the source code of FreeCAD:<br />
<br />
====Using a frontend==== <!--T:144--><br />
<br />
<!--T:145--><br />
When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:<br />
# Create a new folder where the source code will be downloaded.<br />
# Right-click on this folder in the Windows file explorer and select '''Git Clone''' in the context menu.<br />
# A dialog will appear. In it, enter the URL for the FreeCAD Git repository<br />
<br />
</translate><br />
''https://github.com/FreeCAD/FreeCAD.git''<br />
<translate><br />
<br />
<!--T:179--><br />
and click '''OK'''.<br />
<br />
<!--T:180--><br />
The latest source code will be downloaded from the FreeCAD Git repository and the folder will be tracked by Git.<br />
<br />
====Using the command line==== <!--T:117--><br />
<br />
<!--T:102--><br />
To create a local tracking branch and download the source code, open a terminal (command prompt) and switch there to the directory you want the source, then type:<br />
<br />
</translate><br />
{{Code|code=<br />
git clone https://github.com/FreeCAD/FreeCAD.git<br />
}}<br />
<translate><br />
<br />
===Compiler=== <!--T:71--><br />
<br />
<!--T:118--><br />
The default (recommended) compiler is MS Visual Studio (MSVC). Though it may be possible to use other compilers, for example gcc via Cygwin or MinGW, it is not tested or covered here.<br />
<br />
<!--T:146--><br />
You can get a free version of MSVC (for individual usage) by downloading the [https://visualstudio.microsoft.com/vs/community/ ''Community'' edition of MS Visual Studio].<br />
<br />
<!--T:106--><br />
For those who want to avoid installing the huge MSVC for the mere purpose of having a compiler, see [[CompileOnWindows - Reducing Disk Footprint]].<br />
<br />
<!--T:147--><br />
'''Note:''' Although the ''Community'' edition of MSVC is free, to use the IDE for more than a 30-day trial period you must create a Microsoft account. If you will only compile using the command line, you don't need the IDE and thus no Microsoft account.<br />
<br />
<!--T:184--><br />
As a free and OpenSource alternative IDE you can use [https://www.kdevelop.org/download KDevelop]. You can use KDevelop to modify and write C++ code but must use the command line to compile.<br />
<br />
===Optional system path configuration=== <!--T:5--><br />
<br />
<!--T:121--><br />
Optionally you can include the paths to some folders to the system PATH variable. This is helpful if you want to access programs in these folders from the command line/powershell or if you want special programs to be found by the compiler or CMake. Besides this, adding folders to the PATH might be necessary if you did not use the corresponding options when installing the program.<br />
<br />
<!--T:148--><br />
* You can include the folder of your LibPack in your system PATH variable. This is useful if you plan to build multiple configurations/versions of FreeCAD.<br />
* If you did not use the option to add CMake to the PATH while installing it, add its installation folder<br />
<br />
<!--T:185--><br />
''C:\Program Files\CMake\bin'' to the PATH.<br />
* If you did not use the option to add TortoiseGit to the PATH while installing it, add its installation folder<br />
<br />
<!--T:186--><br />
''C:\Program Files\TortoiseGit\bin'' to the PATH.<br />
<br />
<!--T:104--><br />
To add folder paths to the PATH variable:<br />
# In the Windows Start menu Right click on ''Computer'' and choose ''Properties''.<br />
# In the appearing dialog click on ''Advanced system settings''.<br />
# Another dialog will open. Click there in the tab ''Advanced'' on '''Environment Variables'''.<br />
# Again another dialog will open. Select then the variable ''Path'' and click on '''Edit'''.<br />
# And again another dialog will open. Click there on '''New''' and add to path to the folder of Git or the LibPack.<br />
# Finally press '''OK''' and close all dialogs by pressing '''OK''' as well.<br />
<br />
== Configuration == <!--T:6--><br />
<br />
<!--T:227--><br />
Once you have all of the necessary tools, libraries, and FreeCAD source code, you are ready to begin the configuration and compilation process. This process will proceed in five steps:<br />
# Run CMake once to examine your system and begin the configuration progress (this will report that it failed).<br />
# Adjust necessary CMake settings to set the locations of the LibPack and enable Qt5.<br />
# Re-run CMake to finalize the configuration (this time it should succeed).<br />
# Use CMake to generate the Visual Studio build system.<br />
# Use Visual Studio to build FreeCAD.<br />
<br />
===CMake=== <!--T:151--><br />
<br />
<!--T:123--><br />
First, configure the build environment using CMake:<br />
# Open the CMake GUI<br />
# Specify the source folder of FreeCAD.<br />
# Specify a build folder. This can be '''build''' in the folder you cloned the repo because this path is ignored by git. Do not use the source folder. CMake will create this folder if it does not exist.<br />
# Click '''Configure'''.<br />
# In the dialog that appears specify the generator you want to use: in most cases you will use the defaults in this dialog. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.<br />
<br />
<!--T:187--><br />
'''Note:''' It is important to specify the correct bit variant. If you have the 64-bit variant of the LibPack you must also use the x64 compiler.<br />
<br />
<!--T:76--><br />
This will begin the configuration and ''will fail'' because of missing settings. This is normal, you have not yet specified the location of the LibPack. However, there are other failures that might occur that require some further action on your part.<br />
<br />
<!--T:152--><br />
If it fails with the message that Visual Studio could not be found, the CMake support in MSVC is not yet installed. To do this:<br />
# Open the MSVC IDE<br />
# Use the menu Tools → Get Tools and Features<br />
# In the ''Workloads'' tab enable ''Desktop development with C++''<br />
# On the right side you should now see that the component ''Visual C++ tools for CMake'' will be installed.<br />
# Install it.<br />
<br />
<!--T:219--><br />
If it fails with a message about the wrong Python version or missing Python, then:<br />
# Use the "Search:" box in CMake to search for the string "Python"<br />
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is already installed on your PC, but that version is not compatible with the LibPack. Since the LibPack includes a compatible version of Python, modify the following Python settings in CMake to its paths (assuming the LibPack is in the folder ''D:/FreeCAD-build/FreeCADLibs_2_8_x64_VC2019''):<br />
[[File:CMake_Python_settings.png]]<br />
<br />
<!--T:153--><br />
If there is no error about Visual Studio or Python, everything is fine, but CMake does not yet know all necessary settings. Therefore now:<br />
# Search in CMake for the variable '''FREECAD_LIBPACK_DIR''' and specify the location of the LibPack folder you downloaded earlier.<br />
# (''If building FreeCAD 0.19'') Search for the variable '''BUILD_QT5''' and enable this option.<br />
# (''If planning on running directly from the build folder such as for debugging'') Search for and enable the following options:<br />
#* '''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'''<br />
#* '''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'''<br />
#* '''FREECAD_COPY_PLUGINS_BIN_TO_BUILD'''<br />
# Click '''Configure''' again.<br />
<br />
<!--T:138--><br />
There should now be no errors. If you continue to encounter errors that you cannot diagnose, visit the [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] on the FreeCAD forum website. If CMake proceeded correctly, click on '''Generate'''. After this is done you can close CMake and start the compilation of FreeCAD using Visual Studio. However, for the first compilation keep it open in case you want or need to change some options for the build process.<br />
<br />
=== Options for the build process === <!--T:77--><br />
<br />
<!--T:78--><br />
The CMake build system gives you control over some aspects of the build process. In particular, you can switch on and off some features or modules using CMake variables.<br />
<br />
<!--T:79--><br />
Here is a description of some of these variables:<br />
<br />
<!--T:80--><br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| BUILD_XXX || Build FreeCAD with the component XXX. If you don't want/need to compile e.g. the workbench ''OpenSCAD'', disable the variable ''BUILD_OPENSCAD''. FreeCAD will then not have this workbench.<br />
'''Note:''' Some components are required for other components. If you for example uncheck ''BUILD_ROBOT'' CMake will inform you that then the component ''Path'' cannot be compiled correctly. Therefore check the CMake output after you changed a BUILD_XXX option!<br />
|| depends<br />
|-<br />
| BUILD_ENABLE_CXX_STD || The version of the C++ language standard. '''C++14''' is the highest possible for FreeCAD 0.19 while at least '''C++17''' is required for FreeCAD 0.20. See also the note in the section [[#Release_Build|Building with Visual Studio 15 (2017) and 16 (2019)]]<br />
|| depends<br />
|-<br />
| BUILD_DESIGNER_PLUGIN|| To build the Qt Designer plugin, see [[Compile_on_Windows#Qt_Designer_plugin|this section below]] || OFF<br />
|-<br />
| BUILD_FLAT_MESH|| Necessary to have a build that includes the [[MeshPart_CreateFlatMesh|CreateFlatMesh feature]] || OFF<br />
|-<br />
| CMAKE_INSTALL_PREFIX || The output folder when building the target ''INSTALL'', see also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]] || Windows default program installation folder<br />
|-<br />
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Copies depending libraries needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]].</br> '''Note:''' the options FREECAD_COPY_XXX only appear if the libraries were not already copied. If you only need to upgrade/change to another LibPack version, see the section [[#Updating_the_LibPack|Updating the LibPack]]. If you want to bring back the options for some reason, you need to delete all folders in your build folder, except for the LibPack folder. In CMake delete the cache and start as if you compile for the first time. || OFF<br />
|-<br />
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Copies the LibPack binaries needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF<br />
|-<br />
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF<br />
|-<br />
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON<br />
|-<br />
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder<br />
|-<br />
| FREECAD_RELEASE_PDB || Create debug libraries (*.pdb) also for release builds. It doesn't affect the speed (like a real debug build would do) and can be very useful to locate crashes in FreeCAD code. In case FreeCAD crashes a ''crash.dmp'' file will be created that can be loaded with MSVC and if you have the corresponding PDB files plus the source code of that version you can debug through the code. Without the PDB files it's not possible to debug the code and all what the debugger shows is the name of the DLL where the crash has occurred. || ON<br />
|-<br />
| FREECAD_USE_MP_COMPILE_FLAG || Adds the /MP (multiprocessor) option to the Visual Studio projects, enabling speedups on multi-core CPUs. This can greatly accelerate builds on modern processors.</br>'''Note:''' If you turn off '''FREECAD_USE_PCH''', the compilation can quickly overload your heap space, even if you have 16 GB RAM. || ON<br />
|-<br />
| FREECAD_USE_PCH || [https://en.wikipedia.org/wiki/Precompiled_header Precompiles the headers] in order to save compilation time. || ON<br />
|-<br />
| FREECAD_USE_PYBIND11|| Includes the [https://github.com/pybind/pybind11 PyBind11] library. Necessary to have a build that includes the [[MeshPart_CreateFlatMesh|CreateFlatMesh feature]].</br>'''Note:''' after turning it on you might get a configuration error. Just configure again and the problem should go away. || OFF<br />
|}<br />
<br />
== Building FreeCAD == <!--T:81--><br />
<br />
<!--T:125--><br />
Depending on your compiler, the process for building FreeCAD will be slightly different. In the following sections known workflows are described. If you are building with Qt Creator, jump to [[#Building_with_Qt_Creator_.28outdated.29|Building with Qt Creator (outdated)]], otherwise proceed directly:<br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
=== Building with Visual Studio 15 (2017) or newer === <!--T:154--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
==== Release Build ==== <!--T:220--><br />
<br />
<!--T:155--><br />
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.<br />
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Release''.<br />
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build'''.<br />
This will now take quite a long time.<br />
<br />
<!--T:156--><br />
To compile a ready-to use FreeCAD, compile the target ''INSTALL'', see the section [[#Running and installing FreeCAD|Running and installing FreeCAD]].<br />
<br />
<!--T:157--><br />
If you don't get any errors you are done. '''Congratulations!''' You can exit MSVC or keep it open.<br />
<br />
<!--T:237--><br />
'''Important:''' Since Visual Studio 17.4 one cannot use the code optimization for the target ''SketcherGui'' that is on by default. Otherwise angle constraints will be misplaced in sketches. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry ''Properties''. In the appearing dialog go to C/C++ → Optimization and disable there the setting ''Optimization''. Finally build the target '''ALL_BUILD''' again.<br />
<br />
==== Debug Build ==== <!--T:222--><br />
<br />
<!--T:223--><br />
For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:<br />
# Search in the CMake GUI for "Python"<br />
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):<br />
[[File:CMake_Python_settings.png]]<br />
<br />
<!--T:256--><br />
As prerequisite for the debug build, you need to do this:<br />
# Copy the content of the LibPack folder ''bind'' to the ''bin'' folder of the FreeCAD build folder (overwrite the existing files).<br />
# Copy the content of the LibPack folder ''libd'' to the ''lib'' folder of the FreeCAD build folder.<br />
<br />
<!--T:224--><br />
Now you can compile:<br />
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.<br />
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Debug''.<br />
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build''' in the context menu.<br />
This will now take quite a long time.<br />
<br />
<!--T:257--><br />
If there were no compilation errors, and if the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above were enabled, you can start the debug build:<br />
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.<br />
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.<br />
<br />
<!--T:225--><br />
This will start the debug build of FreeCAD and you can use the MSVC IDE to debug it.<br />
<br />
<!--T:218--><br />
==== Video Resource ====<br />
An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10].<br />
</translate><br />
</div><br />
</div><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
=== Building with Qt Creator (outdated) === <!--T:88--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
==== Installation and configuration of Qt Creator ==== <!--T:61--><br />
<br />
<!--T:126--><br />
* Download and install [https://www.qt.io/offline-installers Qt Creator]<br />
* Tools → Options → Text Editor → Behavior tab:<br />
** File Encodings → Default Encodings:<br />
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)<br />
* Tools → Options → Build & Run:<br />
** CMake tab<br />
*** Fill Executable box with path to cmake.exe<br />
** Kits tab<br />
*** Name: MSVC 2008<br />
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)<br />
*** Debugger: Auto detected...<br />
*** Qt version: None<br />
** General tab<br />
*** Uncheck: Always build project before deploying it<br />
*** Uncheck: Always deploy project before running it<br />
<br />
====Import project and building==== <!--T:62--><br />
<br />
<!--T:127--><br />
* File → Open File or Project<br />
* Open '''CMakeLists.txt''' which is in the top level of the source<br />
* This will start CMake<br />
* Choose build directory and click next<br />
* Set generator to '''NMake Generator (MSVC 2008)'''<br />
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.<br />
<br />
<!--T:64--><br />
Now FreeCAD can be built<br />
* Build → Build All<br />
* This will take a long time...<br />
<br />
<!--T:65--><br />
Once complete, it can be run:<br />
There are 2 green triangles at the bottom left. One is debug.<br />
The other is run. Pick whichever you want.<br />
</translate><br />
</div><br />
</div><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
===Command line build=== <!--T:66--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:158--><br />
The steps how to compile from the command line depends on the compiler. For MSVC 2017 the steps are:<br />
# In Windows start menu go to {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} and choose '''Developer Command Prompt for VS 2017'''<br />
# Change to your build folder.<br />
# Execute the command<br />
<br />
</translate><br />
{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}<br />
<translate><br />
<br />
<!--T:190--><br />
or<br />
<br />
</translate><br />
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}<br />
<translate><br />
<br />
<!--T:114--><br />
These steps can also be automaized. Here is for example a solution for MSVC 2017:<br />
# Download the script [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].<br />
# Rename it to ''compile-FC.bat''<br />
# In Windows file explorer Shift+Right-click on your build folder and use from the context menu ''Command prompt here''.<br />
# Execute the command<br />
<br />
</translate><br />
{{Code|code=compile-FC install}}<br />
<translate><br />
<br />
<!--T:191--><br />
Instead of calling '''compile-FC''' with the option ''install'' you can also use ''debug'' or ''release'':<br />
<br />
<!--T:192--><br />
''debug'' &nbsp; - compile FreeCAD in debug configuration<br />
<br />
<!--T:193--><br />
''release'' - compile FreeCAD in release configuration<br />
<br />
<!--T:194--><br />
''install'' &nbsp;&nbsp; - compile FreeCAD in release configuration and create an install setup<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Running and installing FreeCAD== <!--T:139--><br />
<br />
<!--T:140--><br />
There are 2 methods to run the compiled FreeCAD:<br />
<br />
<!--T:195--><br />
''Method 1'': You execute the FreeCAD.exe that you find in your build folder in the subfolder ''bin''<br />
<br />
<!--T:196--><br />
''Method 2'': You build the target ''INSTALL''<br />
<br />
<!--T:141--><br />
Method 2 is the simpler one because it automatically assures that all libraries needed to run the FreeCAD.exe are in the correct folder. The FreeCAD.exe and the libraries will be output in the folder you specified in the CMake variable ''CMAKE_INSTALL_PREFIX''.<br />
<br />
<!--T:142--><br />
For Method 1 you need to enable the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above.<br />
<br />
===Troubleshooting=== <!--T:238--><br />
<br />
<!--T:239--><br />
When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:<br />
<br />
<!--T:240--><br />
* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')<br />
* In the FreeCAD [[Python console]] execute these commands:<br />
<nowiki>import os<br />
os.system(r"~\DependenciesGui.exe")</nowiki><br />
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.<br />
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.<br />
<br />
==Updating the build== <!--T:160--><br />
<br />
<!--T:161--><br />
FreeCAD is very actively developed. Therefore its source code changes almost daily. New features are added and bugs are fixed. To benefit from these source code changes, you must rebuild your FreeCAD. This is done in two steps:<br />
# Updating the source code<br />
# Recompilation<br />
<br />
===Updating the source code=== <!--T:162--><br />
<br />
====Using a frontend==== <!--T:163--><br />
<br />
<!--T:164--><br />
When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:<br />
# Right-click on your FreeCAD source code folder in the Windows file explorer and select in the context menu '''Pull'''.<br />
# A dialog will appear. Select there what development branch you want to get. '''master''' is the main branch. Therefore use this unless you want to compile a special new feature from a branch that has not yet been merged to ''master''. (For more about Git branches, see [[Source_code_management#Git_development_process|Git development process]].)<br />
<br />
<!--T:198--><br />
Finally click '''OK'''.<br />
<br />
====Using the command line==== <!--T:165--><br />
<br />
<!--T:166--><br />
Open a terminal (command prompt) and switch there to your source directory. Then type:<br />
<br />
</translate><br />
{{Code|code=<br />
git pull https://github.com/FreeCAD/FreeCAD.git master<br />
}}<br />
<translate><br />
<br />
<!--T:167--><br />
where ''master'' the the name of the main development branch. If you want to get code from another branch, use its name instead of ''master''.<br />
<br />
===Recompilation=== <!--T:168--><br />
<br />
<!--T:169--><br />
# Open the MSVC IDE by double-clicking either on the file ''FreeCAD.sln'' or on the file ''ALL_BUILD.vcxproj'' in your build folder.<br />
# Continue with step 2 from the section [[#Building_with_Visual_Studio_15_.282017.29_or_newer|Building with Visual Studio 15 2017]].<br />
<br />
==Updating the LibPack== <!--T:253--><br />
<br />
<!--T:254--><br />
If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ here].<br />
<br />
<!--T:255--><br />
To update your LibPack the following recipe is best practice:<br />
# Delete the ''bin'' folder in your build folder.<br />
# Switch to your local LibPack folder and delete everything there.<br />
# Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.<br />
# Open CMake and there press the button '''Configure''' and then the button '''Generate'''. This recreates the ''bin'' folder you just deleted and also copies the new LibPack files into it.<br />
# In CMake click the button '''Open Project''' and the MSVC IDE will open.<br />
# In the MSVC IDE build the target ''INSTALL''.<br />
<br />
==Tools== <!--T:199--><br />
<br />
<!--T:200--><br />
In order to join the FreeCAD development you should compile and install the following tools:<br />
<br />
===Qt Designer plugin=== <!--T:201--><br />
<br />
<!--T:202--><br />
FreeCAD uses [https://en.wikipedia.org/wiki/Qt_(software) Qt] as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.<br />
<br />
====Compilation==== <!--T:208--><br />
<br />
<!--T:209--><br />
The plugin cannot be loaded by the Qt Designer if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. Therefore the plugin must be compiled together with FreeCAD:<br />
<br />
<!--T:241--><br />
* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.<br />
* open MSVC and build the target '''FreeCAD_widgets'''<br />
<br />
<!--T:242--><br />
As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''<br />
<br />
====Installation==== <!--T:203--><br />
<br />
<!--T:205--><br />
To install the plugin, copy the DLL either to:<br />
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_2_8_x64_VC2019\plugins\designer''<br />
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>or</br>''C:\Qt\5.15.2\msvc2019_64\bin\designer'' (you must first create the ''designer'' subfolder.)</br>(adapt the paths to your installation!).<br />
<br />
<!--T:206--><br />
Finally (re)start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.<br />
<br />
<!--T:207--><br />
If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the plugin file must be placed in this folder:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>Then (re)start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.<br />
<br />
===Thumbnail Provider=== <!--T:211--><br />
<br />
<!--T:212--><br />
FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.<br />
<br />
====Installation==== <!--T:213--><br />
<br />
<!--T:214--><br />
The DLL is installed this way:<br />
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.<br />
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).<br />
# Change to the folder where the DLL is.<br />
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}<br />
<br />
<!--T:215--><br />
So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.<br />
<br />
====Compilation==== <!--T:216--><br />
<br />
<!--T:217--><br />
To compile the FCStdThumbnail.dll<br />
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''<br />
# Open the CMake GUI<br />
# Specify there as source folder the one you are currently in.<br />
# Use the same folder as build folder.<br />
# Click '''Configure'''<br />
# In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''Note:''' It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.<br />
# Click on '''Generate'''.<br />
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.<br />
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.<br />
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.<br />
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.<br />
<br />
== Compiling Open Cascade== <!--T:228--><br />
<br />
<!--T:229--><br />
The LibPack comes with a version of [https://en.wikipedia.org/wiki/Open_Cascade Open Cascade] that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of Open Cascade, such as one of their official releases, or a patched fork.<br />
<br />
<!--T:243--><br />
When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.<br />
<br />
<!--T:231--><br />
To compile:<br />
* First obtain the Open Cascade source code, either directly from [https://github.com/Open-Cascade-SAS/OCCT Open Cascade's git repository] or by cloning someone else's fork, such as [https://gitlab.com/blobfish/occt the "blobfish" fork] maintained by FreeCAD forum member [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].<br />
<br />
<!--T:232--><br />
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set (or explicitly not set):<br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| 3RDPARTY_DIR|| The path to 3rdparty components. It is recommended to use the folder as input where your used LibPack is. Explicitly leave this field empty.<br />
|| empty<br />
|-<br />
| 3RDPARTY_DOXYGEN_EXECUTABLE|| The path to the executable of the 3rdparty component [https://en.wikipedia.org/wiki/Doxygen Doxygen]. It is recommended to install Doxygen. CMake will then find it automatically.<br />
|| empty<br />
|-<br />
| 3RDPARTY_FREETYPE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/FreeType Freetype]. It is recommended to use the folder as input where your used LibPack is.<br />
|| empty<br />
|-<br />
| 3RDPARTY_RAPIDJSON_DIR|| Only available if '''USE_RAPIDJSON''' is used. The path to the 3rdparty component [https://rapidjson.org/ RapidJSON]. It is recommended NOT to use an existing LibPack folder as input. You can use the RapidJSOn folder from a LibPack, but copy it to a new folder and use this new folder as input.<br />
|| empty<br />
|-<br />
| 3RDPARTY_TCL_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tcl TCL]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.<br />
|| empty<br />
|-<br />
| 3RDPARTY_TK_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tk_(software) TK]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.<br />
|| empty<br />
|-<br />
| 3RDPARTY_VTK_DIR|| Only available if '''USE_VTK''' is used. The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/VTK VTK]. It is recommended to use the folder as input where your used LibPack is. If you use another folder please assure that you don't use VTK 9.x or newer.<br />
|| empty<br />
|-<br />
| BUILD_RELEASE_DISABLE_EXCEPTIONS|| Disables exception handling for release builds. For FreeCAD you must set it to '''OFF'''.<br />
|| ON<br />
|-<br />
| INSTALL_DIR|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.<br />
|| Windows default program installation folder<br />
|-<br />
| INSTALL_DIR_BIN|| The output subfolder for the DLL when building the target ''INSTALL''. You must change it to '''bin'''<br />
|| win64/vc14/bin<br />
|-<br />
| INSTALL_DIR_LIB|| The output subfolder for the .lib files when building the target ''INSTALL''. You must change it to '''lib'''<br />
|| win64/vc14/lib<br />
|-<br />
| USE_RAPIDJSON|| To compile Open Cascade with support for RapidJSON. Enabling this is mandatory in order to get support for the file format [https://en.wikipedia.org/wiki/Gltf glTF].<br />
|| OFF<br />
|-<br />
| USE_VTK|| To compile Open Cascade with support for VTK. Enabling this is optimal. You can use this to build Open Cascade's VTK bridge.<br />
|| OFF<br />
|}<br />
<br />
<!--T:244--><br />
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.<br />
* Repeat building the two targets in the '''Debug''' mode.<br />
<br />
<!--T:245--><br />
To build FreeCAD using the self-compiled Open Cascade, you must do the following:<br />
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)<br />
* Switch to the LibPack folder and go there to the subfolder ''cmake''<br />
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor<br />
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br><br />
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''<br />
<br />
== Compiling Netgen== <!--T:246--><br />
<br />
<!--T:247--><br />
The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.<br />
<br />
<!--T:248--><br />
However, you might build Netgen nevertheless. This is an easy task:<br />
<br />
<!--T:249--><br />
* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].<br />
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:<br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.<br />
|| C:/netgen<br />
|-<br />
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.<br />
|| empty<br />
|-<br />
| USE_GUI|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set<br />
|| ON<br />
|-<br />
| USE_OCC|| set it to '''ON'''<br />
|| OFF<br />
|-<br />
| USE_PYTHON|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| USE_SUPERBUILD|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.<br />
|| empty<br />
|-<br />
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.<br />
|| empty<br />
|-<br />
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.<br />
|| empty<br />
|}<br />
<br />
<!--T:250--><br />
* Additionally you need to add a new CMake entry:<br />
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br><br />
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.<br />
<br />
<!--T:251--><br />
* Press the ''Configure'' button in CMake to generate the *.cmake files.<br />
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:<br />
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.<br />
** Press the ''Configure'' button in CMake again.<br />
* Press the ''Generate'' button in CMake.<br />
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.<br />
* Repeat building the two targets in the '''Debug''' mode.<br />
<br />
<!--T:252--><br />
To build FreeCAD using the self-compiled Netgen, you must do the following:<br />
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)<br />
<br />
== References == <!--T:115--><br />
<br />
<!--T:74--><br />
See also<br />
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]<br />
<br />
<br />
<!--T:69--><br />
{{Docnav<br />
|[[Licence|Licence]]<br />
|[[Compile_on_Linux|Compile on Linux]]<br />
}}<br />
<br />
</translate><br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Developer_Documentation{{#translation:}}]]<br />
[[Category:Developer{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=Compile_on_Windows&diff=1245688Compile on Windows2023-03-26T07:40:50Z<p>Uwestoehr: remove outdated info</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:109--><br />
{{Docnav<br />
|[[Licence|Licence]]<br />
|[[Compile_on_Linux|Compile on Linux]]<br />
}}<br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page explains step by step '''how to compile FreeCAD 0.19 or newer on Windows''' using Microsoft's MSVC compiler. For information on using MSYS2/MinGW see [[Compile_on_MinGW|Compile on MinGW]]. For other platforms see [[Compiling|Compiling]].<br />
<br />
== Prerequisites == <!--T:2--><br />
<br />
<!--T:136--><br />
Compiling FreeCAD on Windows requires several tools and libraries.<br />
<br />
===Required=== <!--T:100--><br />
<br />
<!--T:226--><br />
* A compiler. FreeCAD is tested with Visual Studio (MSVC)—other compilers may work, but instructions for use are not included here. Fore more details, see the section [[#Compiler|Compiler]] below.<br />
<br />
<!--T:116--><br />
* [http://git-scm.com/ Git] (There are also GUI frontends available for Git, see the next section.)<br />
<br />
<!--T:170--><br />
* [https://cmake.org/download/ CMake] version 3.11.x or newer. </br> ''Hint:'' Choosing the option ''Add CMake to the system PATH for all users'' when installing CMake will make CMake accessible from the Windows command prompt, which can be useful.<br />
<br />
<!--T:172--><br />
* The [https://github.com/FreeCAD/FreeCAD-LibPack LibPack]. This is a single package containing all of the libraries necessary to compile FreeCAD on Windows. Download the version of the LibPack that corresponds to the version of FreeCAD you want to compile. To compile FreeCAD 0.20 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/2.6 LibPack version 2.6], for FreeCAD 0.19 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/1.0 LibPack version 1.0]. Extract the LibPack to a convenient location. (If your computer does not recognize the .7z extension, you must install the program [https://www.7-zip.org 7-zip].) </br> '''Note''': It is highly recommended to compile FreeCAD with the compiler version the LibPack is designed for. For example, you might run into problems compiling FreeCAD 0.20 using MSVC&nbsp;2017 because the LibPack is designed to be built with MSVC&nbsp;2019 or newer.</br>To update your LibPack later, see the section [[#Updating_the_LibPack|Updating the LibPack]].<br />
<br />
===Optional programs=== <!--T:137--><br />
<br />
<!--T:176--><br />
* A GUI frontend for Git. There are several frontends available, see [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. The main benefit of a frontend is that you don't have to learn the Git commands to get the source code of FreeCAD or to send patches to the GitHub repository of FreeCAD.<br />
<br />
<!--T:177--><br />
In the following we describe source code handling using the [https://tortoisegit.org/ TortoiseGit] frontend. This frontend integrates directly into Windows file explorer and has a large user community to get help in case you have problems.<br />
<br />
<!--T:178--><br />
* [http://sourceforge.net/projects/nsis/ NSIS] is used to generate the FreeCAD Windows installer.<br />
<br />
===Source code=== <!--T:98--><br />
<br />
<!--T:143--><br />
Now you can get the source code of FreeCAD:<br />
<br />
====Using a frontend==== <!--T:144--><br />
<br />
<!--T:145--><br />
When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:<br />
# Create a new folder where the source code will be downloaded.<br />
# Right-click on this folder in the Windows file explorer and select '''Git Clone''' in the context menu.<br />
# A dialog will appear. In it, enter the URL for the FreeCAD Git repository<br />
<br />
</translate><br />
''https://github.com/FreeCAD/FreeCAD.git''<br />
<translate><br />
<br />
<!--T:179--><br />
and click '''OK'''.<br />
<br />
<!--T:180--><br />
The latest source code will be downloaded from the FreeCAD Git repository and the folder will be tracked by Git.<br />
<br />
====Using the command line==== <!--T:117--><br />
<br />
<!--T:102--><br />
To create a local tracking branch and download the source code, open a terminal (command prompt) and switch there to the directory you want the source, then type:<br />
<br />
</translate><br />
{{Code|code=<br />
git clone https://github.com/FreeCAD/FreeCAD.git<br />
}}<br />
<translate><br />
<br />
===Compiler=== <!--T:71--><br />
<br />
<!--T:118--><br />
The default (recommended) compiler is MS Visual Studio (MSVC). Though it may be possible to use other compilers, for example gcc via Cygwin or MinGW, it is not tested or covered here.<br />
<br />
<!--T:146--><br />
You can get a free version of MSVC (for individual usage) by downloading the [https://visualstudio.microsoft.com/vs/community/ ''Community'' edition of MS Visual Studio].<br />
<br />
<!--T:106--><br />
For those who want to avoid installing the huge MSVC for the mere purpose of having a compiler, see [[CompileOnWindows - Reducing Disk Footprint]].<br />
<br />
<!--T:147--><br />
'''Note:''' Although the ''Community'' edition of MSVC is free, to use the IDE for more than a 30-day trial period you must create a Microsoft account. If you will only compile using the command line, you don't need the IDE and thus no Microsoft account.<br />
<br />
<!--T:184--><br />
As a free and OpenSource alternative IDE you can use [https://www.kdevelop.org/download KDevelop]. You can use KDevelop to modify and write C++ code but must use the command line to compile.<br />
<br />
===Optional system path configuration=== <!--T:5--><br />
<br />
<!--T:121--><br />
Optionally you can include the paths to some folders to the system PATH variable. This is helpful if you want to access programs in these folders from the command line/powershell or if you want special programs to be found by the compiler or CMake. Besides this, adding folders to the PATH might be necessary if you did not use the corresponding options when installing the program.<br />
<br />
<!--T:148--><br />
* You can include the folder of your LibPack in your system PATH variable. This is useful if you plan to build multiple configurations/versions of FreeCAD.<br />
* If you did not use the option to add CMake to the PATH while installing it, add its installation folder<br />
<br />
<!--T:185--><br />
''C:\Program Files\CMake\bin'' to the PATH.<br />
* If you did not use the option to add TortoiseGit to the PATH while installing it, add its installation folder<br />
<br />
<!--T:186--><br />
''C:\Program Files\TortoiseGit\bin'' to the PATH.<br />
<br />
<!--T:104--><br />
To add folder paths to the PATH variable:<br />
# In the Windows Start menu Right click on ''Computer'' and choose ''Properties''.<br />
# In the appearing dialog click on ''Advanced system settings''.<br />
# Another dialog will open. Click there in the tab ''Advanced'' on '''Environment Variables'''.<br />
# Again another dialog will open. Select then the variable ''Path'' and click on '''Edit'''.<br />
# And again another dialog will open. Click there on '''New''' and add to path to the folder of Git or the LibPack.<br />
# Finally press '''OK''' and close all dialogs by pressing '''OK''' as well.<br />
<br />
== Configuration == <!--T:6--><br />
<br />
<!--T:227--><br />
Once you have all of the necessary tools, libraries, and FreeCAD source code, you are ready to begin the configuration and compilation process. This process will proceed in five steps:<br />
# Run CMake once to examine your system and begin the configuration progress (this will report that it failed).<br />
# Adjust necessary CMake settings to set the locations of the LibPack and enable Qt5.<br />
# Re-run CMake to finalize the configuration (this time it should succeed).<br />
# Use CMake to generate the Visual Studio build system.<br />
# Use Visual Studio to build FreeCAD.<br />
<br />
===CMake=== <!--T:151--><br />
<br />
<!--T:123--><br />
First, configure the build environment using CMake:<br />
# Open the CMake GUI<br />
# Specify the source folder of FreeCAD.<br />
# Specify a build folder. This can be '''build''' in the folder you cloned the repo because this path is ignored by git. Do not use the source folder. CMake will create this folder if it does not exist.<br />
# Click '''Configure'''.<br />
# In the dialog that appears specify the generator you want to use: in most cases you will use the defaults in this dialog. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.<br />
<br />
<!--T:187--><br />
'''Note:''' It is important to specify the correct bit variant. If you have the 64-bit variant of the LibPack you must also use the x64 compiler.<br />
<br />
<!--T:76--><br />
This will begin the configuration and ''will fail'' because of missing settings. This is normal, you have not yet specified the location of the LibPack. However, there are other failures that might occur that require some further action on your part.<br />
<br />
<!--T:152--><br />
If it fails with the message that Visual Studio could not be found, the CMake support in MSVC is not yet installed. To do this:<br />
# Open the MSVC IDE<br />
# Use the menu Tools → Get Tools and Features<br />
# In the ''Workloads'' tab enable ''Desktop development with C++''<br />
# On the right side you should now see that the component ''Visual C++ tools for CMake'' will be installed.<br />
# Install it.<br />
<br />
<!--T:219--><br />
If it fails with a message about the wrong Python version or missing Python, then:<br />
# Use the "Search:" box in CMake to search for the string "Python"<br />
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is already installed on your PC, but that version is not compatible with the LibPack. Since the LibPack includes a compatible version of Python, modify the following Python settings in CMake to its paths (assuming the LibPack is in the folder ''D:/FreeCAD-build/FreeCADLibs_2_8_x64_VC2019''):<br />
[[File:CMake_Python_settings.png]]<br />
<br />
<!--T:153--><br />
If there is no error about Visual Studio or Python, everything is fine, but CMake does not yet know all necessary settings. Therefore now:<br />
# Search in CMake for the variable '''FREECAD_LIBPACK_DIR''' and specify the location of the LibPack folder you downloaded earlier.<br />
# (''If building FreeCAD 0.19'') Search for the variable '''BUILD_QT5''' and enable this option.<br />
# (''If planning on running directly from the build folder such as for debugging'') Search for and enable the following options:<br />
#* '''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'''<br />
#* '''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'''<br />
#* '''FREECAD_COPY_PLUGINS_BIN_TO_BUILD'''<br />
# Click '''Configure''' again.<br />
<br />
<!--T:138--><br />
There should now be no errors. If you continue to encounter errors that you cannot diagnose, visit the [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] on the FreeCAD forum website. If CMake proceeded correctly, click on '''Generate'''. After this is done you can close CMake and start the compilation of FreeCAD using Visual Studio. However, for the first compilation keep it open in case you want or need to change some options for the build process.<br />
<br />
=== Options for the build process === <!--T:77--><br />
<br />
<!--T:78--><br />
The CMake build system gives you control over some aspects of the build process. In particular, you can switch on and off some features or modules using CMake variables.<br />
<br />
<!--T:79--><br />
Here is a description of some of these variables:<br />
<br />
<!--T:80--><br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| BUILD_XXX || Build FreeCAD with the component XXX. If you don't want/need to compile e.g. the workbench ''OpenSCAD'', disable the variable ''BUILD_OPENSCAD''. FreeCAD will then not have this workbench.<br />
'''Note:''' Some components are required for other components. If you for example uncheck ''BUILD_ROBOT'' CMake will inform you that then the component ''Path'' cannot be compiled correctly. Therefore check the CMake output after you changed a BUILD_XXX option!<br />
|| depends<br />
|-<br />
| BUILD_ENABLE_CXX_STD || The version of the C++ language standard. '''C++14''' is the highest possible for FreeCAD 0.19 while at least '''C++17''' is required for FreeCAD 0.20. See also the note in the section [[#Release_Build|Building with Visual Studio 15 (2017) and 16 (2019)]]<br />
|| depends<br />
|-<br />
| BUILD_DESIGNER_PLUGIN|| To build the Qt Designer plugin, see [[Compile_on_Windows#Qt_Designer_plugin|this section below]] || OFF<br />
|-<br />
| BUILD_FLAT_MESH|| Necessary to have a build that includes the [[MeshPart_CreateFlatMesh|CreateFlatMesh feature]] || OFF<br />
|-<br />
| CMAKE_INSTALL_PREFIX || The output folder when building the target ''INSTALL'', see also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]] || Windows default program installation folder<br />
|-<br />
| FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Copies depending libraries needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]].</br> '''Note:''' the options FREECAD_COPY_XXX only appear if the libraries were not already copied. If you only need to upgrade/change to another LibPack version, see the section [[#Updating_the_LibPack|Updating the LibPack]]. If you want to bring back the options for some reason, you need to delete all folders in your build folder, except for the LibPack folder. In CMake delete the cache and start as if you compile for the first time. || OFF<br />
|-<br />
| FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Copies the LibPack binaries needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF<br />
|-<br />
| FREECAD_COPY_PLUGINS_BIN_TO_BUILD|| Copies Qt's plugin files needed to execute the FreeCAD.exe to the build folder. See also the section [[#Running and installing FreeCAD|Running and installing FreeCAD]]. || OFF<br />
|-<br />
| FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON<br />
|-<br />
| FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder<br />
|-<br />
| FREECAD_RELEASE_PDB || Create debug libraries (*.pdb) also for release builds. It doesn't affect the speed (like a real debug build would do) and can be very useful to locate crashes in FreeCAD code. In case FreeCAD crashes a ''crash.dmp'' file will be created that can be loaded with MSVC and if you have the corresponding PDB files plus the source code of that version you can debug through the code. Without the PDB files it's not possible to debug the code and all what the debugger shows is the name of the DLL where the crash has occurred. || ON<br />
|-<br />
| FREECAD_USE_MP_COMPILE_FLAG || Adds the /MP (multiprocessor) option to the Visual Studio projects, enabling speedups on multi-core CPUs. This can greatly accelerate builds on modern processors.</br>'''Note:''' If you turn off '''FREECAD_USE_PCH''', the compilation can quickly overload your heap space, even if you have 16 GB RAM. || ON<br />
|-<br />
| FREECAD_USE_PCH || [https://en.wikipedia.org/wiki/Precompiled_header Precompiles the headers] in order to save compilation time. || ON<br />
|-<br />
| FREECAD_USE_PYBIND11|| Includes the [https://github.com/pybind/pybind11 PyBind11] library. Necessary to have a build that includes the [[MeshPart_CreateFlatMesh|CreateFlatMesh feature]].</br>'''Note:''' after turning it on you might get a configuration error. Just configure again and the problem should go away. || OFF<br />
|}<br />
<br />
== Building FreeCAD == <!--T:81--><br />
<br />
<!--T:125--><br />
Depending on your compiler, the process for building FreeCAD will be slightly different. In the following sections known workflows are described. If you are building with Qt Creator, jump to [[#Building_with_Qt_Creator_.28outdated.29|Building with Qt Creator (outdated)]], otherwise proceed directly:<br />
<br />
</translate><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
=== Building with Visual Studio 15 (2017) or newer === <!--T:154--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
==== Release Build ==== <!--T:220--><br />
<br />
<!--T:155--><br />
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.<br />
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Release''.<br />
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build'''.<br />
This will now take quite a long time.<br />
<br />
<!--T:156--><br />
To compile a ready-to use FreeCAD, compile the target ''INSTALL'', see the section [[#Running and installing FreeCAD|Running and installing FreeCAD]].<br />
<br />
<!--T:157--><br />
If you don't get any errors you are done. '''Congratulations!''' You can exit MSVC or keep it open.<br />
<br />
<!--T:237--><br />
'''Note:''' FreeCAD 0.20 requires at least the C++ language standard version 17 but the 3rd-party component ''flann'' from the LibPack is not yet ready for this. Therefore you will get compilation errors for the target ''ReverseEngineering''. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry ''Properties''. In the appearing dialog change the '''C++ Language Standard''' to '''ISO C++14'''. Finally build the target '''ALL_BUILD''' again.<br />
<br />
==== Debug Build ==== <!--T:222--><br />
<br />
<!--T:223--><br />
For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:<br />
# Search in the CMake GUI for "Python"<br />
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):<br />
[[File:CMake_Python_settings.png]]<br />
<br />
<!--T:256--><br />
As prerequisite for the debug build, you need to do this:<br />
# Copy the content of the LibPack folder ''bind'' to the ''bin'' folder of the FreeCAD build folder (overwrite the existing files).<br />
# Copy the content of the LibPack folder ''libd'' to the ''lib'' folder of the FreeCAD build folder.<br />
<br />
<!--T:224--><br />
Now you can compile:<br />
# Start the Visual Studio IDE. This can either be done by pressing the button ''Open Project'' in the CMake GUI or by double-clicking on the file ''FreeCAD.sln'' that you find in your build folder.<br />
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Debug''.<br />
# There is a window called ''Solution Explorer''. It lists all possible compilation targets. To start a full compilation, right-click on the target '''ALL_BUILD''' and then choose '''Build''' in the context menu.<br />
This will now take quite a long time.<br />
<br />
<!--T:257--><br />
If there were no compilation errors, and if the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above were enabled, you can start the debug build:<br />
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.<br />
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.<br />
<br />
<!--T:225--><br />
This will start the debug build of FreeCAD and you can use the MSVC IDE to debug it.<br />
<br />
<!--T:218--><br />
==== Video Resource ====<br />
An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10].<br />
</translate><br />
</div><br />
</div><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
=== Building with Qt Creator (outdated) === <!--T:88--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
==== Installation and configuration of Qt Creator ==== <!--T:61--><br />
<br />
<!--T:126--><br />
* Download and install [https://www.qt.io/offline-installers Qt Creator]<br />
* Tools → Options → Text Editor → Behavior tab:<br />
** File Encodings → Default Encodings:<br />
** Set to: '''ISO-8859-1 /...csISOLatin1''' (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)<br />
* Tools → Options → Build & Run:<br />
** CMake tab<br />
*** Fill Executable box with path to cmake.exe<br />
** Kits tab<br />
*** Name: MSVC 2008<br />
*** Compiler: Microsoft Visual C++ Compiler 9.0 (x86)<br />
*** Debugger: Auto detected...<br />
*** Qt version: None<br />
** General tab<br />
*** Uncheck: Always build project before deploying it<br />
*** Uncheck: Always deploy project before running it<br />
<br />
====Import project and building==== <!--T:62--><br />
<br />
<!--T:127--><br />
* File → Open File or Project<br />
* Open '''CMakeLists.txt''' which is in the top level of the source<br />
* This will start CMake<br />
* Choose build directory and click next<br />
* Set generator to '''NMake Generator (MSVC 2008)'''<br />
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.<br />
<br />
<!--T:64--><br />
Now FreeCAD can be built<br />
* Build → Build All<br />
* This will take a long time...<br />
<br />
<!--T:65--><br />
Once complete, it can be run:<br />
There are 2 green triangles at the bottom left. One is debug.<br />
The other is run. Pick whichever you want.<br />
</translate><br />
</div><br />
</div><br />
<div class="mw-collapsible mw-collapsed toccolours"><br />
<translate><br />
<br />
===Command line build=== <!--T:66--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:158--><br />
The steps how to compile from the command line depends on the compiler. For MSVC 2017 the steps are:<br />
# In Windows start menu go to {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} and choose '''Developer Command Prompt for VS 2017'''<br />
# Change to your build folder.<br />
# Execute the command<br />
<br />
</translate><br />
{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}<br />
<translate><br />
<br />
<!--T:190--><br />
or<br />
<br />
</translate><br />
{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}<br />
<translate><br />
<br />
<!--T:114--><br />
These steps can also be automaized. Here is for example a solution for MSVC 2017:<br />
# Download the script [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].<br />
# Rename it to ''compile-FC.bat''<br />
# In Windows file explorer Shift+Right-click on your build folder and use from the context menu ''Command prompt here''.<br />
# Execute the command<br />
<br />
</translate><br />
{{Code|code=compile-FC install}}<br />
<translate><br />
<br />
<!--T:191--><br />
Instead of calling '''compile-FC''' with the option ''install'' you can also use ''debug'' or ''release'':<br />
<br />
<!--T:192--><br />
''debug'' &nbsp; - compile FreeCAD in debug configuration<br />
<br />
<!--T:193--><br />
''release'' - compile FreeCAD in release configuration<br />
<br />
<!--T:194--><br />
''install'' &nbsp;&nbsp; - compile FreeCAD in release configuration and create an install setup<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Running and installing FreeCAD== <!--T:139--><br />
<br />
<!--T:140--><br />
There are 2 methods to run the compiled FreeCAD:<br />
<br />
<!--T:195--><br />
''Method 1'': You execute the FreeCAD.exe that you find in your build folder in the subfolder ''bin''<br />
<br />
<!--T:196--><br />
''Method 2'': You build the target ''INSTALL''<br />
<br />
<!--T:141--><br />
Method 2 is the simpler one because it automatically assures that all libraries needed to run the FreeCAD.exe are in the correct folder. The FreeCAD.exe and the libraries will be output in the folder you specified in the CMake variable ''CMAKE_INSTALL_PREFIX''.<br />
<br />
<!--T:142--><br />
For Method 1 you need to enable the '''FREECAD_COPY_*''' options mentioned in the [[#CMake|CMake Configuration step]] above.<br />
<br />
===Troubleshooting=== <!--T:238--><br />
<br />
<!--T:239--><br />
When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:<br />
<br />
<!--T:240--><br />
* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')<br />
* In the FreeCAD [[Python console]] execute these commands:<br />
<nowiki>import os<br />
os.system(r"~\DependenciesGui.exe")</nowiki><br />
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.<br />
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.<br />
<br />
==Updating the build== <!--T:160--><br />
<br />
<!--T:161--><br />
FreeCAD is very actively developed. Therefore its source code changes almost daily. New features are added and bugs are fixed. To benefit from these source code changes, you must rebuild your FreeCAD. This is done in two steps:<br />
# Updating the source code<br />
# Recompilation<br />
<br />
===Updating the source code=== <!--T:162--><br />
<br />
====Using a frontend==== <!--T:163--><br />
<br />
<!--T:164--><br />
When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:<br />
# Right-click on your FreeCAD source code folder in the Windows file explorer and select in the context menu '''Pull'''.<br />
# A dialog will appear. Select there what development branch you want to get. '''master''' is the main branch. Therefore use this unless you want to compile a special new feature from a branch that has not yet been merged to ''master''. (For more about Git branches, see [[Source_code_management#Git_development_process|Git development process]].)<br />
<br />
<!--T:198--><br />
Finally click '''OK'''.<br />
<br />
====Using the command line==== <!--T:165--><br />
<br />
<!--T:166--><br />
Open a terminal (command prompt) and switch there to your source directory. Then type:<br />
<br />
</translate><br />
{{Code|code=<br />
git pull https://github.com/FreeCAD/FreeCAD.git master<br />
}}<br />
<translate><br />
<br />
<!--T:167--><br />
where ''master'' the the name of the main development branch. If you want to get code from another branch, use its name instead of ''master''.<br />
<br />
===Recompilation=== <!--T:168--><br />
<br />
<!--T:169--><br />
# Open the MSVC IDE by double-clicking either on the file ''FreeCAD.sln'' or on the file ''ALL_BUILD.vcxproj'' in your build folder.<br />
# Continue with step 2 from the section [[#Building_with_Visual_Studio_15_.282017.29_or_newer|Building with Visual Studio 15 2017]].<br />
<br />
==Updating the LibPack== <!--T:253--><br />
<br />
<!--T:254--><br />
If a new major version of a third-party dependency like Open Cascade is released, or if a third-party dependency has important bug fixes, a new LibPack is released. You can find the latest version [https://github.com/FreeCAD/FreeCAD-LibPack/releases/ here].<br />
<br />
<!--T:255--><br />
To update your LibPack the following recipe is best practice:<br />
# Delete the ''bin'' folder in your build folder.<br />
# Switch to your local LibPack folder and delete everything there.<br />
# Extract the content of the new LibPack ZIP file into the existing, but now empty, local LibPack folder.<br />
# Open CMake and there press the button '''Configure''' and then the button '''Generate'''. This recreates the ''bin'' folder you just deleted and also copies the new LibPack files into it.<br />
# In CMake click the button '''Open Project''' and the MSVC IDE will open.<br />
# In the MSVC IDE build the target ''INSTALL''.<br />
<br />
==Tools== <!--T:199--><br />
<br />
<!--T:200--><br />
In order to join the FreeCAD development you should compile and install the following tools:<br />
<br />
===Qt Designer plugin=== <!--T:201--><br />
<br />
<!--T:202--><br />
FreeCAD uses [https://en.wikipedia.org/wiki/Qt_(software) Qt] as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.<br />
<br />
====Compilation==== <!--T:208--><br />
<br />
<!--T:209--><br />
The plugin cannot be loaded by the Qt Designer if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. Therefore the plugin must be compiled together with FreeCAD:<br />
<br />
<!--T:241--><br />
* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.<br />
* open MSVC and build the target '''FreeCAD_widgets'''<br />
<br />
<!--T:242--><br />
As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''<br />
<br />
====Installation==== <!--T:203--><br />
<br />
<!--T:205--><br />
To install the plugin, copy the DLL either to:<br />
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_2_8_x64_VC2019\plugins\designer''<br />
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>or</br>''C:\Qt\5.15.2\msvc2019_64\bin\designer'' (you must first create the ''designer'' subfolder.)</br>(adapt the paths to your installation!).<br />
<br />
<!--T:206--><br />
Finally (re)start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.<br />
<br />
<!--T:207--><br />
If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the plugin file must be placed in this folder:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>Then (re)start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.<br />
<br />
===Thumbnail Provider=== <!--T:211--><br />
<br />
<!--T:212--><br />
FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.<br />
<br />
====Installation==== <!--T:213--><br />
<br />
<!--T:214--><br />
The DLL is installed this way:<br />
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.<br />
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).<br />
# Change to the folder where the DLL is.<br />
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}<br />
<br />
<!--T:215--><br />
So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.<br />
<br />
====Compilation==== <!--T:216--><br />
<br />
<!--T:217--><br />
To compile the FCStdThumbnail.dll<br />
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''<br />
# Open the CMake GUI<br />
# Specify there as source folder the one you are currently in.<br />
# Use the same folder as build folder.<br />
# Click '''Configure'''<br />
# In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''Note:''' It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.<br />
# Click on '''Generate'''.<br />
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.<br />
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.<br />
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.<br />
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.<br />
<br />
== Compiling Open Cascade== <!--T:228--><br />
<br />
<!--T:229--><br />
The LibPack comes with a version of [https://en.wikipedia.org/wiki/Open_Cascade Open Cascade] that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of Open Cascade, such as one of their official releases, or a patched fork.<br />
<br />
<!--T:243--><br />
When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.<br />
<br />
<!--T:231--><br />
To compile:<br />
* First obtain the Open Cascade source code, either directly from [https://github.com/Open-Cascade-SAS/OCCT Open Cascade's git repository] or by cloning someone else's fork, such as [https://gitlab.com/blobfish/occt the "blobfish" fork] maintained by FreeCAD forum member [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].<br />
<br />
<!--T:232--><br />
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set (or explicitly not set):<br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| 3RDPARTY_DIR|| The path to 3rdparty components. It is recommended to use the folder as input where your used LibPack is. Explicitly leave this field empty.<br />
|| empty<br />
|-<br />
| 3RDPARTY_DOXYGEN_EXECUTABLE|| The path to the executable of the 3rdparty component [https://en.wikipedia.org/wiki/Doxygen Doxygen]. It is recommended to install Doxygen. CMake will then find it automatically.<br />
|| empty<br />
|-<br />
| 3RDPARTY_FREETYPE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/FreeType Freetype]. It is recommended to use the folder as input where your used LibPack is.<br />
|| empty<br />
|-<br />
| 3RDPARTY_RAPIDJSON_DIR|| Only available if '''USE_RAPIDJSON''' is used. The path to the 3rdparty component [https://rapidjson.org/ RapidJSON]. It is recommended NOT to use an existing LibPack folder as input. You can use the RapidJSOn folder from a LibPack, but copy it to a new folder and use this new folder as input.<br />
|| empty<br />
|-<br />
| 3RDPARTY_TCL_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tcl TCL]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.<br />
|| empty<br />
|-<br />
| 3RDPARTY_TK_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tk_(software) TK]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.<br />
|| empty<br />
|-<br />
| 3RDPARTY_VTK_DIR|| Only available if '''USE_VTK''' is used. The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/VTK VTK]. It is recommended to use the folder as input where your used LibPack is. If you use another folder please assure that you don't use VTK 9.x or newer.<br />
|| empty<br />
|-<br />
| BUILD_RELEASE_DISABLE_EXCEPTIONS|| Disables exception handling for release builds. For FreeCAD you must set it to '''OFF'''.<br />
|| ON<br />
|-<br />
| INSTALL_DIR|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.<br />
|| Windows default program installation folder<br />
|-<br />
| INSTALL_DIR_BIN|| The output subfolder for the DLL when building the target ''INSTALL''. You must change it to '''bin'''<br />
|| win64/vc14/bin<br />
|-<br />
| INSTALL_DIR_LIB|| The output subfolder for the .lib files when building the target ''INSTALL''. You must change it to '''lib'''<br />
|| win64/vc14/lib<br />
|-<br />
| USE_RAPIDJSON|| To compile Open Cascade with support for RapidJSON. Enabling this is mandatory in order to get support for the file format [https://en.wikipedia.org/wiki/Gltf glTF].<br />
|| OFF<br />
|-<br />
| USE_VTK|| To compile Open Cascade with support for VTK. Enabling this is optimal. You can use this to build Open Cascade's VTK bridge.<br />
|| OFF<br />
|}<br />
<br />
<!--T:244--><br />
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.<br />
* Repeat building the two targets in the '''Debug''' mode.<br />
<br />
<!--T:245--><br />
To build FreeCAD using the self-compiled Open Cascade, you must do the following:<br />
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)<br />
* Switch to the LibPack folder and go there to the subfolder ''cmake''<br />
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor<br />
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br><br />
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''<br />
<br />
== Compiling Netgen== <!--T:246--><br />
<br />
<!--T:247--><br />
The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.<br />
<br />
<!--T:248--><br />
However, you might build Netgen nevertheless. This is an easy task:<br />
<br />
<!--T:249--><br />
* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].<br />
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:<br />
{| class="wikitable" style="text-align:left"<br />
|-<br />
! Variable name !! Description !! Default<br />
|-<br />
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.<br />
|| C:/netgen<br />
|-<br />
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in the section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.<br />
|| empty<br />
|-<br />
| USE_GUI|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set<br />
|| ON<br />
|-<br />
| USE_OCC|| set it to '''ON'''<br />
|| OFF<br />
|-<br />
| USE_PYTHON|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| USE_SUPERBUILD|| set it to '''OFF'''<br />
|| ON<br />
|-<br />
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.<br />
|| empty<br />
|-<br />
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.<br />
|| empty<br />
|-<br />
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.<br />
|| empty<br />
|}<br />
<br />
<!--T:250--><br />
* Additionally you need to add a new CMake entry:<br />
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br><br />
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.<br />
<br />
<!--T:251--><br />
* Press the ''Configure'' button in CMake to generate the *.cmake files.<br />
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:<br />
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.<br />
** Press the ''Configure'' button in CMake again.<br />
* Press the ''Generate'' button in CMake.<br />
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.<br />
* Repeat building the two targets in the '''Debug''' mode.<br />
<br />
<!--T:252--><br />
To build FreeCAD using the self-compiled Netgen, you must do the following:<br />
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)<br />
<br />
== References == <!--T:115--><br />
<br />
<!--T:74--><br />
See also<br />
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]<br />
<br />
<br />
<!--T:69--><br />
{{Docnav<br />
|[[Licence|Licence]]<br />
|[[Compile_on_Linux|Compile on Linux]]<br />
}}<br />
<br />
</translate><br />
{{Userdocnavi{{#translation:}}}}<br />
[[Category:Developer_Documentation{{#translation:}}]]<br />
[[Category:Developer{{#translation:}}]]</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer&diff=1245677FEM SolverElmer2023-03-26T01:43:38Z<p>Uwestoehr: add new equation</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM SolverElmer<br />
|MenuLocation=Solver → Solver Elmer<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut={{KEY|S}} {{KEY|E}}<br />
|SeeAlso=[[FEM_SolverElmer_SolverSettings|FEM SolverElmer SolverSettings]], [[FEM_SolverCalculiX|FEM Solver CalculiX]], [[FEM_SolverZ88|FEM Solver Z88]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:10--><br />
[https://www.elmerfem.org Elmer] is an open source multiphysical simulation software mainly developed by CSC - IT Center for Science (CSC). Elmer development was started 1995 in collaboration with Finnish Universities, research institutes and industry. After it's open source publication in 2005, the use and development of Elmer has become international.<br />
<br />
<!--T:11--><br />
Elmer includes physical models of fluid dynamics, structural mechanics, electromagnetics, heat transfer and acoustics, for example. These are described by partial differential equations which [https://www.csc.fi/web/elmer Elmer] solves by the Finite Element Method (FEM).<br />
<br />
<!--T:12--><br />
Creating the SolverElmer object in the Analysis container in FreeCAD, gives access to the Elmer Equations for simple or multiphysical analysis.<br />
<br />
<!--T:2--><br />
Since FreeCAD already has an extensive integration of [[Image:FEM_SolverCalculiX.svg|24px|link=FEM_SolverCalculixCxxtools]] [[FEM_SolverCalculixCxxtools|Calculix]] and [[Image:FEM_SolverZ88.svg|24px|link=FEM_SolverZ88]] [[FEM_SolverZ88|Z88]] as solvers for mechanical and thermo-mechanical analysis, Elmer will be preferred for computational fluid dynamics (CFD), heat, electrostatics and electrodynamics. It can also be used for mechanical FEA through the Elasticity equation or any combination of the aforementioned equations. This combination makes Elmer the preferred choice for multi-physics analyses.<br />
<br />
==Installation== <!--T:13--><br />
<br />
<!--T:14--><br />
Elmer requires two components to be interfaced with FreeCAD:<br />
* ElmerGrid is the interface handling meshes<br />
* ElmerSolver is handling the computation. <br />
There are standalone programs for both of these applications but their installation and usage are beyond the scope of the FreeCAD integration.<br />
<br />
<!--T:15--><br />
# Download and install the version best suited to your Operating System ([https://www.nic.funet.fi/pub/sci/physics/elmer/bin/windows/ Windows] or [https://www.nic.funet.fi/pub/sci/physics/elmer/bin/linux/Readme1st.txt Linux]). It is recommended to install the {{incode|mpi}} version to get multi-core support ({{Version|1.0}}).<br />
# In FreeCAD go to {{MenuCommand|Edit → Preferences → FEM → Elmer}}<br />
# In the [[FEM_Preferences#Elmer|FEM preferences]] set the correct path for both {{incode|ElmerGrid}} and {{incode|ElmerSolver}}, or {{VersionPlus|1.0}}: set the path for {{incode|ElmerSolver_mpi}} instead of {{incode|ElmerSolver}} to make Elmer use all available CPU cores.<br />
#: [[Image:Preferences-ElmerPath.png|Elmer Tab in FEM Preferences]]<br />
#: {{Caption|Elmer preferences dialog menu showing fields to locate important Elmer binaries on Windows OS}}<br />
<br />
<!--T:16--><br />
You are ready to use Elmer in FreeCAD.<br />
<br />
<!--T:23--><br />
{{VersionMinus|0.19}}: Now start FreeCAD and change the units scheme to ''MKS'' in the [[Preferences_Editor#Units|preferences]]. See [[#Notes|Notes]].<br />
<br />
==Usage== <!--T:9--><br />
<br />
<!--T:17--><br />
# Switch to the [[Image:Workbench_FEM.svg|24px]] [[FEM_Workbench|FEM Workbench]]<br />
# Create an [[FEM_Analysis|Analysis]] container by pressing the [[Image:FEM_Analysis.svg|22px]] icon.<br />
# Create a FEM Solver for Elmer, by pressing the [[Image:FEM_SolverElmer.svg|22px]] icon. <br />
#* Note: A successful analysis will require at least a Model (2D or 3D), a Material ([[FEM_MaterialFluid|Fluid]] or [[FEM_MaterialSolid|Solid]]), a [[FEM_MeshGmshFromShape|Mesh]], Equations and Boundary conditions <br />
#: [[Image:Elmer typical file tree.png]]<br />
#: {{Caption|Example of a [[Tree_view|tree view]] once a Solver for Elmer is activated}}<br />
# Edit the parameters for the solver in the [[Property_editor|Property editor]] {{Button|Data}} tab of the SolverElmer object in the model [[Tree_view|tree view]]<br />
# Double-click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object to prepare an analysis run<br />
#: [[Image:ElmerSolver TaskPanel.png|300px]]<br />
#: {{Caption|Dialog box to run an Elmer analysis}}<br />
# Select the path to write the analysis in by clicking {{Button|...}}<br />
# Click {{Button|Write}} to write the case files in the directory selected previously<br />
# Click {{Button|Run}} to start the analysis<br />
<br />
===Equations=== <!--T:24--><br />
<br />
<!--T:18--><br />
* To perform the analysis of a particular physical behavior, an Equation must be used (Flow, Heat, Electrostatics...)<br />
* Disambiguation: The term ''Equation'' is used in FreeCAD to describe the different physical mechanisms, the term ''Solver'' is used in all Elmer documents. Thus when using in FreeCAD the "Flow Equation", in reality Elmer uses the "Flow Solver" to find a solution to the Navier-Stokes equation.<br />
* One or several equations can be used at once with Elmer by simply adding the equation object under the SolverElmer object, thus performing multi-physics analyses:<br />
<br />
<!--T:19--><br />
# Click on the {{KEY|[[Image:FEM_SolverElmer.svg|22px]] SolverElmer}} object in the model [[Tree_view|tree view]]<br />
# Select one ore several of the available equations:<br />
#* [[Image:FEM_EquationDeformation.svg|32px]] [[FEM_EquationDeformation|Deformation equation]]<br />
#* [[Image:FEM_EquationElasticity.svg|32px]] [[FEM_EquationElasticity|Elasticity equation]]<br />
#* [[Image:FEM_EquationElectricforce.svg|32px]] [[FEM_EquationElectricforce|Electricforce equation]]<br />
#* [[Image:FEM_EquationElectrostatic.svg|32px]] [[FEM_EquationElectrostatic|Electrostatic equation]]<br />
#* [[Image:FEM_EquationFlow.svg|32px]] [[FEM_EquationFlow|Flow equation]]<br />
#* [[Image:FEM_EquationFlux.svg|32px]] [[FEM_EquationFlux|Flux equation]]<br />
#* [[Image:FEM_EquationHeat.svg|32px]] [[FEM_EquationHeat|Heat equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic.svg|32px]] [[FEM_EquationMagnetodynamic|Magnetodynamic equation]]<br />
#* [[Image:FEM_EquationMagnetodynamic2D.svg|32px]] [[FEM_EquationMagnetodynamic2D|Magnetodynamic 2D equation]]<br />
<br />
===Solver Settings=== <!--T:26--><br />
<br />
<!--T:27--><br />
* Depending on the used equations, you must change the default solver settings. They are explained in the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
* The solver will by default perform a steady-state simulation. To perform a transient simulation (how the model behaves/develops over time) see the [[FEM_SolverElmer_SolverSettings#Solver|Elmer solver settings]].<br />
<br />
<!--T:28--><br />
Elmer has plenty of settings to determine how the equations should be solved. They are described in detail in the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
==Notes== <!--T:25--><br />
<br />
<!--T:20--><br />
* '''Important''': in order to get sensible results and to be able to exchange the Elmer input files (named ''case.sif'') with others, all values in the input files must be in SI units. In FreeCAD version 0.19 and earlier this is only the case if you use the unit scheme MKS in the [[Preferences_Editor#Units|preferences]].<br />
* Parameters for the Solver and for the Equations are independently set through the [[Property_editor|Property editor]] {{KEY|Data}} tab of their respective objects in the [[Tree_view|tree view]].<br />
* Each equation will have a priority, for example, if trying see the effect of a convective flow of hot air, the equation for Flow should be solved with higher priority than Heat, otherwise the solver will first solve Heat through conduction and then Flow.<br />
* 2D vs 3D cases: Elmer can be used to solve both 2D and 3D cases. However, when defining a 2D case, the faces need to be mapped in the XY plane of FreeCAD, otherwise the solver will try to compute a 3D case on a face, and normal vectors will be under-defined. Further information can be found in the FreeCAD forums: https://forum.freecadweb.org/viewtopic.php?f=18&t=48175<br />
<br />
==Documentation== <!--T:21--><br />
<br />
<!--T:22--><br />
The following link gives access to the full [https://www.nic.funet.fi/pub/sci/physics/elmer/doc/ documentation for Elmer]. This includes the manuals as well as tutorials. Note that documentation and files appended with "gui" generally concern the usage of the Elmer GUI and not the FreeCAD implementation of Elmer.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_SolverCalculiX|Solver CalculiX (experimental)]]<br />
|[[FEM_SolverMystran|Solver Mystran]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverCalculiX.svg<br />
|IconR=FEM_SolverMystran.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationDeformation&diff=1245217FEM EquationDeformation2023-03-25T11:58:28Z<p>Uwestoehr: a single note was already correct, also don't use unnecessary "FEM" prefix (we also don't do this in the docnav)</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationDeformation<br />
|MenuLocation=Solve → Mechanical equations → Deformation equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=1.0<br />
|SeeAlso=[[FEM_EquationElasticity|Elasticity equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:5--><br />
<br />
<!--T:6--><br />
This equation describes the nonlinear elastic deformation of rigid bodies.<br />
<br />
<!--T:7--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Finite Elasticity''.<br />
<br />
==Usage== <!--T:8--><br />
<br />
<!--T:9--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationDeformation.svg|24px]] or the menu {{MenuCommand|Solve → Mechanical equations → Deformation equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
==Solver Settings== <!--T:10--><br />
<br />
<!--T:11--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:12--><br />
The deformation equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Initialize State Variables}}: See the Elmer manual for more info.<br />
* {{PropertyData|Mixed Formulation}}: See the Elmer manual for more info.<br />
* {{PropertyData|Neo Hookean Model}}: Uses the neo-Hookean material model.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Change there the ''3'' to ''2'' if you have a 2D geometry. For the special case that you have {{PropertyData|Mixed Formulation}} and {{PropertyData|Neo Hookean Model}} set to ''true'', the variable number must be geometry dimensions + 1, so for 3D geometry the ''3'' must be changed to ''4''.<br />
<br />
<!--T:13--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:14--><br />
<br />
<!--T:15--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:16--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:17--><br />
<br />
<!--T:18--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Results== <!--T:19--><br />
<br />
<!--T:20--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available.<br />
<br />
<br />
<!--T:21--><br />
{{Docnav<br />
|[[FEM_SolverZ88|Solver Z88]]<br />
|[[FEM_EquationElasticity|Elasticity equation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_SolverZ88.svg<br />
|IconR=FEM_EquationElasticity.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_EquationElasticity&diff=1245216FEM EquationElasticity2023-03-25T11:57:02Z<p>Uwestoehr: The text is only a single note</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM EquationElasticity<br />
|MenuLocation=Solve → Elasticity equation<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Version=0.17<br />
|SeeAlso=[[FEM_EquationDeformation|Deformation equation]], [[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
This equation describes the mechanical properties of rigid bodies.<br />
<br />
<!--T:10--><br />
For info about the math of the equation, see the [http://www.elmerfem.org/blog/documentation/ Elmer models manual], section ''Linear Elasticity''.<br />
<br />
==Usage== <!--T:11--><br />
<br />
<!--T:12--><br />
# After adding an Elmer solver as described [[FEM_SolverElmer#Equations|here]], select it in the [[Tree_view|tree view]].<br />
# Now either use the toolbar button [[Image:FEM_EquationElasticity.svg|24px]] or the menu {{MenuCommand|Solve → Elasticity equation}}.<br />
# Change the [[#Solver_Settings|equation's solver settings]] or the [[FEM_SolverElmer_SolverSettings|general solver settings]] if necessary.<br />
<br />
==Solver Settings== <!--T:13--><br />
<br />
<!--T:14--><br />
For the general solver settings, see the [[FEM_SolverElmer_SolverSettings|Elmer solver settings]].<br />
<br />
<!--T:15--><br />
The elasticity equation provides these special settings:<br />
* {{PropertyData|Calculate Pangle}}: If the principal angles should be calculated.<br />
* {{PropertyData|Calculate Principal}}: If all stresses should be calculated.<br />
* {{PropertyData|Calculate Strains}}: If strains will be calculated. This will also calculate the stresses, even if {{PropertyData|Calculate Principal}} or {{PropertyData|Calculate Stresses}} is ''false''.<br />
* {{PropertyData|Calculate Stresses}}: If stresses should be calculated. Compared to {{PropertyData|Calculate Principal}} the Tresca yield criterion and the principal stress will not be calculated.<br />
* {{PropertyData|Constant Bulk System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Displace Mesh}}: If mesh can be deformed. This is by default ''true'' and must be set to ''false'' for eigenfrequency analyses.<br />
* {{PropertyData|Fix Displacement}}: If displacements or forces are set. thereby {{PropertyData|Model Lumping}} is automatically used.<br />
* {{PropertyData|Geometric Stiffness}}: Considers the geometric stiffness of the body.<br />
* {{PropertyData|Incompressible}}: Computation of incompressible material in connection with viscoelastic Maxwell material and a custom {{PropertyData|Variable}}.<br />
* {{PropertyData|Maxwell Material}}: Compute the viscoelastic material model.<br />
* {{PropertyData|Model Lumping}}: Uses [https://en.wikipedia.org/wiki/Lumped-element_model model lumping].<br />
* {{PropertyData|Model Lumping Filename}}: File to save the results from the model lumping.<br />
* {{PropertyData|Stability Analysis}}: If ''true'' {{PropertyData|Eigen Analysis}} becomes a stability analysis (buckling analysis). Otherwise a modal analysis is performed.<br />
* {{PropertyData|Update Transient System}}: See the Elmer manual for more info.<br />
* {{PropertyData|Variable}}: The variable for the elasticity equation. Only change this if {{PropertyData|Incompressible}} is set to ''true'' in accordance to the Elmer manual.<br />
<br />
<!--T:16--><br />
Eigenvalues:<br />
* {{PropertyData|Eigen Analysis}}: If an eigen analysis should be performed (calculation of eigenmodes and eigenfrequencies).<br />
* {{PropertyData|Eigen System Complex}}: Should be ''true'' if the eigen system is complex. it must be ''false'' for a damped eigen value analyses.<br />
* {{PropertyData|Eigen System Compute Residuals}}: Computes residuals of the eigen value system.<br />
* {{PropertyData|Eigen System Damped}}: Set a damped eigen analysis. Can only be used if {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Solver Type]]}} is ''Iterative''.<br />
* {{PropertyData|Eigen System Select}}: Selection of which eigenvalues are computed. Note that the selection of ''Largest*'' cause an infinite run for recent Elmer solver (as of August 2022).<br />
* {{PropertyData|Eigen System Tolerance}}: Convergence tolerance for iterative eigensystem solve. The default is 100 times the {{PropertyData|[[FEM_SolverElmer_SolverSettings#Linear_System|Linear Tolerance]]}}.<br />
* {{PropertyData|Eigen System Values}}: The number of the highest eigenmode that should be calculated.<br />
<br />
<!--T:17--><br />
Equation:<br />
* {{PropertyData|Plane Stress}}: Computes solution according to the plane stress situation. Applies only for 2D geometry.<br />
<br />
==Constraint Information== <!--T:18--><br />
<br />
<!--T:19--><br />
The elasticity equation takes the following constraints into account if they are set:<br />
<br />
<!--T:20--><br />
* [[Image:FEM_ConstraintFixed.svg|32px]] [[FEM_ConstraintFixed|Constraint fixed]]<br />
* [[Image:FEM_ConstraintDisplacement.svg|32px]] [[FEM_ConstraintDisplacement|Constraint displacement]]<br />
* [[Image:FEM_ConstraintForce.svg|32px]] [[FEM_ConstraintForce|Constraint force]]<br />
* [[Image:FEM_ConstraintInitialTemperature.svg|32px]] [[FEM_ConstraintInitialTemperature|Constraint initial temperature]]<br />
* [[Image:FEM_ConstraintPressure.svg|32px]] [[FEM_ConstraintPressure|Constraint pressure]]<br />
* [[Image:FEM_ConstraintSelfWeight.svg|32px]] [[FEM_ConstraintSelfWeight|Constraint self weight]]<br />
* [[Image:FEM_ConstraintSpring.svg|32px]] [[FEM_ConstraintSpring|Constraint spring]]<br />
<br />
===Note=== <!--T:21--><br />
<br />
<!--T:22--><br />
* Except for calculations in 2D, for all above constraints it is important that they act on a face. Constraints for 3D set to lines or vertices are not recognized by the Elmer solver.<br />
<br />
==Eigenmode Analysis== <!--T:23--><br />
<br />
<!--T:24--><br />
To perform an eigenmode analysis (calculation if the eigenmodes and eigenfrequencies), you need to<br />
# Set {{PropertyData|Eigen Analysis}}: to ''true''<br />
# Set {{PropertyData|Displace Mesh}}: to ''false''<br />
# Set {{PropertyData|Eigen System Values}}: to the highest number of eigenmodes you are interested in. The smaller this number the shorter the solver runtime since higher modes can be omitted from computation.<br />
# Add a [[FEM_ConstraintFixed|fixed constraint]] and set at least one face of the body as fixed.<br />
# Run the solver.<br />
<br />
<!--T:25--><br />
'''Note''': If you use more than one CPU core for the solver ({{Version|1.0}}), you cannot use ''Umfpack'', the only direct method for parallel solving is ''MUMPS''.</br>Also note that iterative solving is not recommended for eigenmode analysis. Therefore either only use one CPU core or install the ''MUMPS'' module to Elmer.<br />
<br />
==Buckling Analysis== <!--T:26--><br />
<br />
<!--T:27--><br />
To perform a buckling analysis, you need to do the same as for an [[#Eigenmode_Analysis|Eigenmode Analysis]], and additionally:<br />
* Set {{PropertyData|Stability Analysis}} to ''true''<br />
<br />
==Results== <!--T:28--><br />
<br />
<!--T:29--><br />
The available results depend on the [[#Solver_Settings|solver settings]]. If none of the {{PropertyData|Calculate *}} settings was set to ''true'', only the displacement is calculated. Otherwise also the corresponding results will be available. If {{PropertyData|Eigen Analysis}} was set to ''true'' all results will be available for every calculated eigenmode.<br />
<br />
<!--T:30--><br />
If {{PropertyData|Eigen Analysis}} was set to ''true'', the eigenfrequencies are output at the end of the solver log in the solver dialog and also in the document '''SolverElmerOutput''' that will be created in the tree view after the solver has finished.<br />
<br />
<!--T:31--><br />
'''Note:''' The eigenmode displacement <math>\vec{d}</math> vector has an arbitrary value since the result is<br />
<br />
<!--T:32--><br />
<math>\quad<br />
\vec{d} = c\cdot\vec{u}<br />
</math><br />
<br />
<!--T:33--><br />
whereas <math>\vec{u}</math> is the eigenvector and <math>c</math> is a complex number.<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_EquationDeformation|Deformation equation]]<br />
|[[FEM_CompEmEquations|Electromagnetic equations]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_EquationDeformation.svg<br />
|IconR=FEM_CompEmEquations.png<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_ConstraintFlowVelocity&diff=1245215FEM ConstraintFlowVelocity2023-03-25T11:55:15Z<p>Uwestoehr: the FEM prefix to links to other FEM pages is not necessary, also uniform wording</p>
<hr />
<div><languages/><br />
<translate><br />
<br />
<!--T:4--><br />
{{Docnav<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_ConstraintPlaneRotation|Constraint plane rotation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintInitialPressure.svg<br />
|IconR=FEM_ConstraintPlaneRotation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ConstraintFlowVelocity<br />
|MenuLocation=Model → Fluid Constraints → Constraint flow velocity<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|SeeAlso=[[FEM_ConstraintInitialFlowVelocity|Constraint initial flow velocity]]<br />
}}<br />
<br />
==Description== <!--T:8--><br />
<br />
<!--T:2--><br />
Applies a flow velocity as boundary condition to an edge in 2D or to a face in 3D.<br />
<br />
==Usage== <!--T:9--><br />
<br />
<!--T:11--><br />
# Either press the toolbar button {{Button|[[Image:FEM_ConstraintFlowVelocity.svg|16px]] '''FEM ConstraintFlowVelocity'''}} or select the menu {{MenuCommand|Model → Fluid Constraints → [[Image:FEM_ConstraintFlowVelocity.svg|16px]] Constraint flow velocity}}.<br />
# Select the target Edges or Faces.<br />
# Press the {{Button|Add}} button.<br />
# Uncheck ''Unspecified'' to activate the necessary fields for edition.<br />
# Set the velocity values or ({{Version|1.0}}) specify a formula.<br />
<br />
==Formulas== <!--T:15--><br />
<br />
<!--T:16--><br />
{{Version|1.0}}<br />
<br />
<!--T:17--><br />
It is possible to define a velocity by specifying the velocity profile as formula. In this case the solver sets the velocities at the different positions according to the profile.<br />
<br />
<!--T:18--><br />
To specify for example the velocity profile<br />
<br />
<!--T:19--><br />
<math>\quad<br />
v_{x} (y)=6\left(y-1\right)\left(2-y\right)<br />
</math><br />
<br />
<!--T:20--><br />
for <math>y\in[1;2]</math> (assuming that e.g. a pipe has the wall at y = 1 m and y = 2 m)<br />
<br />
<!--T:21--><br />
enter this to the ''Formula'' field:</br><br />
{{incode| Variable Coordinate 2; Real MATC "6*(tx-1)*(2-tx)"}}<br />
<br />
<!--T:22--><br />
This code has the following syntax:<br />
* the prefix ''Variable'' specifies that the velocity is not a constant but a variable<br />
* the variable to calculate the velocity is ''Coordinate 2'', meaning y<br />
* the velocity values are returned as ''Real'' (floating point value)<br />
* ''MATC'' is the prefix for the Elmer solver that the following code is a formula<br />
* ''tx'' is always the name of the variable in ''MATC'' formulas, no matter that ''tx'' is in our case actually ''y''<br />
<br />
That ''y'' will only be in the range <math>y\in[1;2]</math> is set because ''MATC'' only evaluates the ''tx'' range where the result is positive. This behavior is a bit special but has the advantage that one does not need to specify the range manually.<br />
<br />
It is also possible to use more than one variable. See as example the definition of rotations in the [[FEM_ConstraintDisplacement#Rotations|displacement constraint]].<br />
<br />
==Notes== <!--T:14--><br />
<br />
<!--T:10--><br />
* Any vector component that should be the result of the solver must be set as ''Unspecified''.<br />
* If the target face or edge is not aligned with the main Cartesian coordinate system, it is possible to set the option '''Normal to boundary'''.<br />
*: If '''Normal to boundary''' is checked, the normal vector to the selected edge or face is X and it will be oriented away from the mesh domain.<br />
*: For example, if a flow of 20 mm/s of air should enter the domain, then with '''Normal to boundary''' one must input -20 mm/s in the ''Velocity x'' field.<br />
<br />
<!--T:12--><br />
* For a wall with non-slip condition, set all velocity components to 0.<br />
* For a symmetry condition, set the the flow to 0, Unspecified, Unspecified) if '''Normal to boundary''' is checked.<br />
<br />
<br />
<!--T:5--><br />
{{Docnav<br />
|[[FEM_ConstraintInitialPressure|Constraint initial pressure]]<br />
|[[FEM_ConstraintPlaneRotation|Constraint plane rotation]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintInitialPressure.svg<br />
|IconR=FEM_ConstraintPlaneRotation.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245114FEM SolverElmer SolverSettings2023-03-25T04:43:33Z<p>Uwestoehr: add a note</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient simulations the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. Therefore, to get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''.<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
'''Note:''' Despite one speaks about "times" and "seconds," the times are actually solver progressions if the analysis is not time-dependent.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_SolverElmer_SolverSettings&diff=1245113FEM SolverElmer SolverSettings2023-03-25T04:15:01Z<p>Uwestoehr: add info</p>
<hr />
<div><languages/><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:1--><br />
This page describes the possible settings for [[FEM_SolverElmer|solver Elmer]].<br />
<br />
=General= <!--T:2--><br />
<br />
<!--T:3--><br />
Elmer is a multiphysics solver. Therefore you can use several main equations to solve problems. The different equations are listed [[FEM_SolverElmer#About_Equations|here]].<br />
<br />
<!--T:4--><br />
There are solver settings, available for all equations. These are described here. Settings only available for a particular equation are described in the pages of the corresponding equation.<br />
<br />
<!--T:5--><br />
Elmer offers the [[#Type|solving types]] ''steady-state'' and ''transient'' and two main solving systems, [[#Linear_System|linear system]] and [[#Nonlinear_System|nonlinear system]]. The nonlinear system is used for the [[Image:FEM_EquationFlow.svg|24px]] [[FEM_EquationFlow|Flow equation]] and [[Image:FEM_EquationHeat.svg|24px]] [[FEM_EquationHeat|Heat equation]].<br />
<br />
=Editing Settings= <!--T:6--><br />
<br />
<!--T:7--><br />
The solver settings can be found in the [[Property_editor|property editor]] after clicking on an equation in the [[Tree_view|tree view]]. You can edit them there directly like any other property.<br />
<br />
==Solver== <!--T:8--><br />
<br />
===Coordinate System=== <!--T:29--><br />
<br />
<!--T:30--><br />
The default coordinate system is ''Cartesian 3D''. For some equations, not all coordinate systems can be can be used. This is noted on the Wiki pages of the corresponding equations.<br />
<br />
===Timestepping=== <!--T:9--><br />
<br />
<!--T:10--><br />
For transient simulations the time steps need to be defined. This is done by the following settings:<br />
<br />
<!--T:11--><br />
* {{PropertyData|BDFOrder}}: Order for the method ''BDF'' ([https://en.wikipedia.org/wiki/Backward_differentiation_formula Backward Differentiation Formula]). It is recommended to use the default of ''2''.<br />
* {{PropertyData|Output Intervals}}: An array of intervals. A solver result file will be output every interval time step. For example if every third time step a result file should be output, set it to ''3''. The array corresponds to the {{PropertyData|Timestep Intervals}}.</br>'''Note:''' The first result will in every case be created for the first time step. Therefore, to get for example results after 25 % of the total time and the last result should be the final time, set {{PropertyData|Output Intervals}} to ''5'' and {{PropertyData|Timestep Intervals}} to ''21''.<br />
* {{PropertyData|Timestep Intervals}}: An array of time intervals.The solver will perform one time interval after another. For example if the solver should calculate the first 10 seconds in steps of 0.1 second, then 50 seconds in steps of 1 second and then stop, you need to set the timestep intervals [100, 50] and the timestep size intervals [0.1, 1.0].<br />
* {{PropertyData|Timestep Sizes}}: An array of timestep sizes. The time unit is second. The array corresponds to the {{PropertyData|Timestep Intervals}}.<br />
<br />
===Type=== <!--T:12--><br />
<br />
<!--T:13--><br />
* {{PropertyData|Simulation type}}: If the simulation is ''Steady state'', ''Transient'' or just ''Scanning''. Transient means the development over time is calculated. See section [[#Timestepping|Timestepping]] for the necessary settings.<br />
* {{PropertyData|Steady State Max Iterations}}: The maximum number of steady-state solver runs.<br />
* {{PropertyData|Steady State Min Iterations}}: The minimum number of steady-state solver runs.<br />
<br />
==Equation== <!--T:14--><br />
<br />
===Base=== <!--T:15--><br />
<br />
<!--T:16--><br />
All equations have these properties:<br />
* {{PropertyData|Label}}: Name of the equation in the tree view.<br />
* {{PropertyData|Priority}}: Number determining the priority of this equation to the other equations in the analysis. The equation with the highest number in the analysis will be solved as first. If two equations have the same priority number, the one that is first in the tree view will be solved first.<br />
* {{PropertyData|Stabilize}}: If set to ''true'', the solver will use stabilized finite element method when solving the heat equation with a convection term. If set to ''false'', the Residual Free Bubble (RFB) stabilization is used instead. If convection dominates, stabilization must be used in order to successfully solve the equation.<br />
<br />
===Linear System=== <!--T:17--><br />
<br />
<!--T:18--><br />
This system has the following properties:<br />
* {{PropertyData|BiCGstabl Degree}}: Polynomial degree for the iterative solver method ''BiCGStabl ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''BiCGStabl''. Starting with the default of 2 is recommended.<br />
* {{PropertyData|Idrs Parameter}}: Parameter for the iterative solver method ''Idrs ''. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative'' and {{PropertyData|Linear Iterative Method}} is ''Idrs''. Starting with the default of 2 is recommended. Setting the parameter to 3 might increase the solving speed a bit. For flow analyses the ''Idrs'' method is up to 30&nbsp;% faster than the default ''BiCGStab'' method.<br />
* {{PropertyData|Linear Direct Method}}: Method used for direct solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Direct''.</br>The possible methods are ''Banded'', ''MUMPS'' and ''Umpfpack''. Note that ''MUMPS'' usually needs to be installed before you can use it.</br>'''Note''': when you use more than one CPU core for the solver ({{Version|1.0}}) only ''MUMPS'' can be used.<br />
* {{PropertyData|Linear Iterations}}: Maximal number of iterations for an iterative solver run. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Iterative Method}}: Method used for iterative solving. This has only an effect if {{PropertyData|Linear Solver Type}} is ''Iterative''.<br />
* {{PropertyData|Linear Preconditioning}}: Method used for the preconditioning. For info about preconditioning, see [http://www.nic.funet.fi/index/elmer/slides/ElmerLinearSolvers.pdf this presentation] (page 8) from Elmer. <br />
* {{PropertyData|Linear Solver Type}}: If the solving is done ''Direct'' or ''Iterative''.<br />
* {{PropertyData|Linear System Solver Disabled}}: Disables the linear solver. Only use this for special cases.</br>It can be used to disable temporarily an equation since its solving is then not performed. There are, however cases there the solver is send to an infinite loop instead.<br />
* {{PropertyData|Linear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Linear Iterations}} will be performed.</br>In the Elmer solver log you see how the error is minimized while the solver is running. (Look in the log at the end off every solver iteration for the value behind ''Relative Change''). In case it does not go down below a certain value but reaches a value above the current tolerance that is acceptable for you, you can increase the tolerance.<br />
<br />
===Nonlinear System=== <!--T:19--><br />
<br />
<!--T:20--><br />
This system is iterative and has the following properties:<br />
<br />
<!--T:21--><br />
* {{PropertyData|Nonlinear Iterations}}: Maximal number of iterations.<br />
* {{PropertyData|Nonlinear Newton After Iterations}}: The nonlinear solver starts with the robust ''Picard'' algorithm. After some iterations, the algorithm is changed to the ''Newton'' algorithm which converges faster but is less robust if the results temporarily diverge (oscillations might occur). This setting sets the number of iterations after which the switch from the ''Picard'' to the ''Newton'' algorithm is made.</br>'''Note''': the switch is made whatever is reached first, {{PropertyData|Nonlinear Newton After Iterations}} or {{PropertyData|Nonlinear Newton After Tolerance}}.<br />
* {{PropertyData|Nonlinear Newton After Tolerance}}: The same as {{PropertyData|Nonlinear Newton After Iterations}} but here a tolerance is set. The tolerance is the norm of the nonlinear residual. If this is reached, the switch from the ''Picard'' to the ''Newton'' algorithm is made.<br />
* {{PropertyData|Nonlinear Tolerance}}: The tolerance for the solver to stop. If the error is smaller than the tolerance, the solver run will be is finished. Otherwise the full number of {{PropertyData|Nonlinear Iterations}} will be performed.</br>In the Elmer output you see in how the error is minimized while the solver is running. In case it does not go down below a certain value that is acceptable but above the current tolerance, you can increase the tolerance.<br />
* {{PropertyData|Relaxation Factor}}: This is THE most important setting in case the solver does not converge:<br />
<br />
====Relaxation Factor==== <!--T:22--><br />
<br />
<!--T:23--><br />
If the solver iteration results oscillate numerically, the solver results cannot converge to a final, stable value. To avoid that, the calculated variable <math>T_{i}</math> of the i-th iteration/solver run is not taken as input for the next iteration, but <math>T_{i}^{'}</math>, a value that is "damped" with the result from the previous iteration. The relaxation factor <math>\lambda</math> is thereby defined as<br />
<br />
<!--T:24--><br />
<math>\quad<br />
T_{i}^{'} = \lambda T_{i}+\left(1-\lambda\right)T_{i-1}<br />
</math><br />
<br />
<!--T:25--><br />
So for the default of 1.0, no damping is used. The smaller <math>\lambda</math>, the greater the damping and the the longer the convergence time. Therefore if the solver does not converge, start changing the relaxation factor to 0.9, then to 0.8 and so on. Values below 0.3 are unusual and if you need this, you should have a closer look to the math of your analysis.</br><br />
For cases, where you get a proper convergence you can set <math>\lambda</math> above 1.0 to speed the convergence up.<br />
<br />
===Steady State=== <!--T:26--><br />
<br />
<!--T:27--><br />
This part of the settings has only one property:<br />
* {{PropertyData|Steady State Tolerance}}: The specific steady state or coupled system convergence tolerance. All the equation solvers must meet their own tolerances for the variable <math>\omega^2</math> they calculate, before the whole system is deemed converged. The tolerance criterion is:<br />
<math>\quad<br />
\left\Vert u_{i}-u_{i-1}\right\Vert <\epsilon\left\Vert u_{i}\right\Vert <br />
</math><br />
<br />
<!--T:28--><br />
whereas <math>\epsilon</math> is the steady state tolerance and <math>u_{i}</math> is the calculated variable in the i-th iteration/solver run.<br />
<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}</div>Uwestoehrhttps://wiki.freecad.org/index.php?title=FEM_ConstraintDisplacement&diff=1245108FEM ConstraintDisplacement2023-03-25T01:25:54Z<p>Uwestoehr: /* Formulas */ add link</p>
<hr />
<div><languages/><br />
<translate><br />
<!--T:9--><br />
{{Docnav<br />
|[[FEM_ConstraintFixed|Constraint fixed]]<br />
|[[FEM_ConstraintContact|Constraint contact]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintFixed.svg<br />
|IconR=FEM_ConstraintContact.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
<!--T:1--><br />
{{GuiCommand<br />
|Name=FEM ConstraintDisplacement<br />
|MenuLocation=Model → Mechanical Constraints → Constraint displacement<br />
|Workbenches=[[FEM_Workbench|FEM]]<br />
|Shortcut=<br />
|SeeAlso=[[FEM_tutorial|FEM tutorial]]<br />
}}<br />
<br />
==Description== <!--T:2--><br />
<br />
<!--T:6--><br />
Creates a FEM constraint for a prescribed displacement of a selected object for a specified degree of freedom.<br />
<br />
==Usage== <!--T:3--><br />
<br />
<!--T:7--><br />
# Either press the button {{Button|[[Image:FEM_ConstraintDisplacement.svg|16px]] '''FEM FEM_ConstraintDisplacement'''}} or select the menu {{MenuCommand|Model → Mechanical Constraints → [[Image:FEM_ConstraintDisplacement.svg|16px]] Constraint displacement}}.<br />
# In the [[3D_view|3D view]] select the object the constraint should be applied to, which can be a vertex (corner), edge, or face.<br />
# Press the {{Button|Add}} button.<br />
# Uncheck ''Unspecified'' to activate the necessary fields for edition.<br />
# Set the values or ({{Version|1.0}}) specify a formula for the displacements.<br />
<br />
==Formulas==<br />
<br />
{{Version|1.0}}<br />
<br />
===General===<br />
<br />
For the [[Image:FEM_SolverElmer.svg|32px]] [[FEM_SolverElmer|solver Elmer]] it is possible to define the displacement as formula. In this case the solver sets the displacement according to the give formula variable.<br />
<br />
Take for example the case that we want to perform a [[FEM_SolverElmer_SolverSettings#Timestepping|transient analysis]]. For every time step the displacement <math>d</math> should be increased by 6 mm:<br />
<br />
<math>\quad<br />
d(t)=0.006\cdot t<br />
</math><br />
<br />
enter this to the ''Formula'' field:</br><br />
{{incode| Variable "time"; Real MATC "0.006*tx"}}<br />
<br />
This code has the following syntax:<br />
* the prefix ''Variable'' specifies that the displacement is not a constant but a variable<br />
* the variable is the current time<br />
* the displacement values are returned as ''Real'' (floating point value)<br />
* ''MATC'' is the prefix for the Elmer solver that the following code is a formula<br />
* ''tx'' is always the name of the variable in ''MATC'' formulas, no matter that ''tx'' is in our case actually ''t''<br />
<br />
===Rotations===<br />
<br />
Elmer only uses the '''Displacement *''' fields of the constraint. To define rotations, one needs a formula.<br />
<br />
For example a face should be rotated according to this condition:<br />
<br />
<math>\quad<br />
\begin{align}<br />
d_{x}(t)= & \left(\cos(\phi)-1\right)x-\sin(\phi)y\\<br />
d_{y}(t)= & \left(\cos(\phi)-1\right)y+\sin(\phi)x<br />
\end{align}<br />
</math><br />
<br />
then we need to enter for '''Displacement x'''</br><br />
{{incode| Variable "time, Coordinate"<br />
Real MATC "(cos(tx(0)*pi)-1.0)*tx(1)-sin(tx(0)*pi)*tx(2)}}<br />
<br />
and for then we need to enter for '''Displacement y'''</br><br />
{{incode| Variable "time, Coordinate"<br />
Real MATC "(cos(tx(0)*pi)-1.0)*tx(2)+sin(tx(0)*pi)*tx(1)}}<br />
<br />
This code has the following syntax:<br />
* we have 4 variables, the time and all possible coordinates (x, y z)<br />
* ''tx'' is a vector, ''tx(0)'' refers to the first variable, the time while ''tx(1)'' is the first coordinate ''x''<br />
* ''pi'' denotes <math>\pi</math> and was added to set that after <math>t=1\rm\, s</math> a rotation of 180° is performed<br />
<br />
==Notes== <!--T:5--><br />
<br />
For the [[Image:FEM_SolverCalculixCxxtools.svg|32px]] [[FEM_SolverCalculixCxxtools|solver CalculiX]]:<br />
<!--T:8--><br />
* The constraint uses the *BOUNDARY card.<br />
* Fixing a degree of freedom is explained at http://web.mit.edu/calculix_v2.7/CalculiX/ccx_2.7/doc/ccx/node164.html<br />
* Prescribing a displacement for a degree of freedom is explained at http://web.mit.edu/calculix_v2.7/CalculiX/ccx_2.7/doc/ccx/node165.html<br />
<br />
<br />
<!--T:10--><br />
{{Docnav<br />
|[[FEM_ConstraintFixed|Constraint fixed]]<br />
|[[FEM_ConstraintContact|Constraint contact]]<br />
|[[FEM_Workbench|FEM]]<br />
|IconL=FEM_ConstraintFixed.svg<br />
|IconR=FEM_ConstraintContact.svg<br />
|IconC=Workbench_FEM.svg<br />
}}<br />
<br />
</translate><br />
{{FEM Tools navi{{#translation:}}}}<br />
{{Userdocnavi{{#translation:}}}}<br />
{{clear}}</div>Uwestoehr