FEM ConstraintDisplacement: Difference between revisions

From FreeCAD Documentation
(→‎Formulas: finish rotation)
Line 81: Line 81:
This code has the following syntax:
This code has the following syntax:
* we have 4 variables, the time and all possible coordinates (x, y z)
* we have 4 variables, the time and all possible coordinates (x, y z)
* ''tx'' is a vector, ''tx(0)'' referes to the first variable, the time while ''tx(1)'' is the first coordinate ''x''
* ''tx'' is a vector, ''tx(0)'' refers to the first variable, the time while ''tx(1)'' is the first coordinate ''x''
* ''pi'' denotes <math>\pi</math> and was added to set that after <math>t=1\rm\, s</math> a rotation of 180° is performed
* ''pi'' denotes <math>\pi</math> and was added to set that after <math>t=1\rm\, s</math> a rotation of 180° is performed



Revision as of 23:24, 24 March 2023

FEM ConstraintDisplacement

Menu location
Model → Mechanical Constraints → Constraint displacement
Workbenches
FEM
Default shortcut
None
Introduced in version
-
See also
FEM tutorial

Description

Creates a FEM constraint for a prescribed displacement of a selected object for a specified degree of freedom.

Usage

  1. Either press the button FEM FEM_ConstraintDisplacement or select the menu Model → Mechanical Constraints → Constraint displacement.
  2. In the 3D view select the object the constraint should be applied to, which can be a vertex (corner), edge, or face.
  3. Press the Add button.
  4. Uncheck Unspecified to activate the necessary fields for edition.
  5. Set the values or (introduced in version 1.0) specify a formula for the displacements.

Formulas

introduced in version 1.0

General

For the 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.

Take for example the case that we want to perform a transient analysis. For every time step the displacement should be increased by 6 mm:

enter this to the Formula field:
Variable "time"; Real MATC "0.006*tx"

This code has the following syntax:

  • the prefix Variable specifies that the displacement is not a constant but a variable
  • the variable is the current time
  • the displacement values are returned as Real (floating point value)
  • MATC is the prefix for the Elmer solver that the following code is a formula
  • tx is always the name of the variable in MATC formulas, no matter that tx is in our case actually t

Rotations

Elmer only uses the Displacement * fields of the constraint. To define rotations, one needs a formula.

For example a face should be rotated according to this condition:

then we need to enter for Displacement x
Variable "time, Coordinate" Real MATC "(cos(tx(0)*pi)-1.0)*tx(1)-sin(tx(0)*pi)*tx(2)

and for then we need to enter for Displacement y
Variable "time, Coordinate" Real MATC "(cos(tx(0)*pi)-1.0)*tx(2)+sin(tx(0)*pi)*tx(1)

This code has the following syntax:

  • we have 4 variables, the time and all possible coordinates (x, y z)
  • tx is a vector, tx(0) refers to the first variable, the time while tx(1) is the first coordinate x
  • pi denotes and was added to set that after a rotation of 180° is performed

Notes

For the solver CalculiX: