***equation
#
Description#
This option is used to add linear relationships (equations) between different degrees of freedom in the problem. This allows the standard set of linear equations to include constraint conditions (MPC = multi-point constraint). In the current version of the code, these supplemental relationships are resolved by the direct elimination of degrees of freedom.
Syntax#
***equation
\(~\,\) **
MPC_type
\(~\,~\,\) …
The relationship types which are currently defined are summarized in the following table:
Type |
Description |
---|---|
|
impose an arbitrary relation between a single DOF and any number of others (see page). |
|
sets nodal DOFs of a given type to be equal within a node set (see page). |
|
sets two groups of nodes on a paired basis. A linear relation is enforced between the ith DOF in one node set and the ith node on the other (see page). |
|
is similar to mpc2, and provides an extended syntax (see page). |
|
Sets a condition similar to |
|
models sectorial symmetry of the 3-axis (see page). |
|
sets the DOFs of an node set equal to a surface function (line set in 2D or face set in 3D); this condition allows incompatible meshes to be attached at the surface (see page). |
|
combines mixed dimension meshes (see page). |
|
periodic boundary conditions (see page). |
|
this procedure imposes a constant volume in the interior of a line set in 2D or a face set in 3D (see page). |
|
imposes a rigid body motion on a nset (see page). |
**free
#
Description#
This MPC imposes any relation between a single DOF and other DOFs. There are multiple ways to define the DOFs.
The equation applied is:
Syntax#
This command has a slightly free form, non-standard format.
**free
\(~\,~\,\) slave is
\(~\,~\,~\,\) master1 coef1
\(~\,~\,~\,\) …
\(~\,~\,~\,\) masterN coefN
\(~\,~\,~\,\) coefficient
The terms above slave and master# are some special definitions of
DOFs specific to this MPC condition. The syntax is given below. The
coef# values are real number for the \(c_i\) terms above. And
coefficient is a real value for the coefficient \(C\). Note that
the is
above is a necessary keyword.
node:id:XX
- nodal dof, id is the node id,
XX
the dof type.node:120:U2
. element:id:rk:XX
- element dof, id is the element id, rk the rank of the dof in the element (counted from 1 to the number of element dof of type
XX
),XX
the dof type.element:25:3:EZ
. elset
:name:XX
elset dof, name is the elset name,
XX
the dof type. |elset:metal:E33
**mpc1
#
Description#
This equation type imposes that a given degree of freedom at all the nodes of a valid node set are equal in value.
Syntax#
**mpc1
nset_name dof_name
- nset_name
Character name for a valid node set.
- dof_name
Character name for a DOF keyword. The keywords available for different problem types are described in the chapter DOF.
Example#
The following example could be used to assure that the top surface of a flat topped structure remains flat during deformation.
% from cisap.inp
***equation
**mpc1 top U2
**mpc2
#
Description#
This equation type indicates that groups of nodes are tied on a paired basis. The \(i^\text{th}\) DOF in one node set will be equal to the \(i^\text{th}\) node on the other factored by a coefficient, plus a possible translation.
Alternatively, one can specify element sets to link DOFs belonging to elements. Note that node set names are search first, which could lead to some problems if element sets and node sets have similar names.
Syntax#
There are two possible syntaxes. A standard one and an extended one. The standard syntax is used to simply apply a factor between two degrees of freedom; the default value of ratio is equal to 1, and the relationship is such as dof2_in_name2 = ratio . dof1_in_name1
**mpc2
name1 dof1 name2 dof2 [ ratio ]
The extended one is used to introduce the affine relationship
dof2_in_name2 = ratio . dof1_in_name1 + translation:
**mpc2
name1 dof1 name2 dof2
\(~\,\) *ratio
ratio
\(~\,\) *translation
translation
\(~\,\) *inversion
The *inversion
keyword may be used to prescribe an inversion of the
nset order.
Example#
This could be used to model in 2D a sectorial symmetry following an angle of \(45\) degrees. The nodes of the bisection line of the \(1\) and \(2\) axis should then be imposed to have the same displacement following the axis \(1\) and \(2\).
This condition also allows modeling of axisymmetric conditions (symmetry in relation to a point) by taking two symmetrical node sets in relation to a point and tying similar typed DOFs of the same type with a coefficient of \(-1\).
% from aube.inp
***equation
**mpc2 n_fuite U1 n_fuite U2 0.4431622
On the other hand, the following syntax allows the user to impose a shift between two lips of a crack.
% from tsqu1.inp
***equation
**mpc2 lipleft U1 lipright U1 *ratio 1. *translation 0.15
**mpc2 lipleft U2 lipright U2 *ratio 1. *translation -0.1
**mpc2x
#
Description#
This equation type indicates that groups of nodes are tied on a paired basis. The \(i^\text{th}\) DOF in one node set will be equal to the \(i^\text{th}\) node in the other factored by a coefficient, plus a possible translation:
It generalizes the standard mpc2, by allowing both the translation and the ratio to be given by a basic value (i.e. the product of a value and a time-dependent table, see p. for more details).
Syntax#
**mpc2x
\(~\,~\,\) nsetA dofX
\(~\,~\,\) nsetB dofY
[ *translation
value table ]
[ *ratio
value table ]
[ *cumulative
]
[ *inversion
]
- nsetA nsetB
character name of the two paired node sets.
*translation
1As for boundary conditions, the value may either be a real
value, a function or a file.value 1As for boundary conditions, the value may either be a real value, a function or a file. and table specifying the translation \(\tau\).
*ratio
value [1] and table specifying the proportionality coefficient \(\alpha\).
*cumulative
allows subsequent invocations of this mpc to be cumulated. It is otherwise forbidden, to avoid accidentally applying twice an MPC on the same DOF.
*inversion
may be used to prescribe an inversion of the nset order.
Example#
The first example (from
$Z7TEST/Hyperelastic_test/INP/ring-3-degrees-mpc.inp
) prescribes
\(U_\theta = 0\) in a sectorial mesh:
**mpc2x % U3 = z/x * U1 (ensures U_theta = 0)
face.2 U1
face.2 U3
*ratio function z/x ; tab_constant
The second example imposes the relative slide of both faces of a crack, where the translation is stored in an file (one value per node in the nset):
**mpc2x
faceA U1
faceB U1
*translation ascii_file slide_U1.dat tab_crack
**mpc2_dof_elset
#
Description#
The syntax is the same as for mpc2
but the condition is used to link
DOFs belonging to elements sets.
Example#
This could be used in the case of periodic elements. Here in the case of large strains periodic elements:
**mpc2_dof_elset ALL_ELEMENT E12 ALL_ELEMENT E21
**mpc3
#
Description#
The mpc3
equation type models sectorial symmetry about the
\(3^\text{rd}\) axis.
The following relation is applied to all the nodes of the given node set:
Syntax#
For this relationship it is required to give a node set name situated on the symmetry plane, and the angle of the sector in degrees.
**mpc3
nset_name theta
Character name for the node set in the plane of symmetry. Real value for the sectorial angle.
Example#
% from zcentrifuge3.inp
***equation
**mpc1 haut U3
**mpc3 p0 1.0
**mpc4
#
Description#
The mpc4
relationship is used to interface incompatible meshes. The
DOFs of a given node set will be set to the DOF value on a corresponding
boundary. This boundary will generally be taken on the coarser mesh, and
is entered as a line set in 2D or a face set in 3D problems.
Satisfaction of the mpc4
condition is made by DOF elimination on the
node set.
The position of each node in the node set is first searched in the corresponding line or face set. Two cases may present themselves during this search process. The first is that the node has no projected position on the surface in which case no constraint is applied to that node. The second case is that the node does have a projected position on the surface. In this case the DOF type will be verified for existence on the surface and then subjected to the following relation:
If the DOF is not found on the surface during the verification no condition will be placed on that DOF.
It may be noted here that the global solution size (front) will be reduced if the numbering scheme is such that the element numbers attached to the node set are lower than those attached to the line or face sets.
Syntax#
There are two possible syntaxes. A standard one and an extended one. The standard syntax is:
**mpc4
nset liset (faset)
and the extended one is:
**mpc4
\(~\,\) *nset
nset
\(~\,\) *bset
liset (faset)
\(~\,\) *delta
(dx,dy) ((dx,dy,dz))
The *delta
keyword may be used to prescribe a fixed spatial offset
between the nset and the liset. This is useful for instance to impose
periodic conditions on a unit cell which exhibits incompatible pair
sides (e.g. for a 2D square unit cell, left and right sides do not have
the same number of nodes).
**mpc2d3d
#
Description#
This MPC condition is used to “glue” a 3D mesh to a 2D mesh for mixed dimension analysis. The masters are the DOFs of the 2D mesh controlling the 3D slave DOFs. DOFs are attached (equal) if they have the same \(x_1\) and \(x_2\) coordinates.
Syntax#
**mpc2d3d
nset2d nset3d dof dx
- nset2d
the name of a node set on the 2D mesh.
- nset3d
the name of a node set on the 3D mesh.
- dof
the DOF type to fix (e.g.
U1
,U2
, …).- dx
a real value for the distance criteria for node position equivalence.
**mpc_periodic
#
Description#
This procedure enables one to prescribe an average deformation with periodic boundary conditions, according to
where \(v(x)\) is periodic; the components are denoted \(E11, E22, E12, E21\) in the 2D case and \(E11, E22, E12, E21, E33, E13, E31, E23, E32\) in the 3D case. The actual value of the prescribed average deformation is equal to the product of the basic value \(i\) and the value in the table tab. Concerning the nsets it is important to distinguish faces, edges and corners.
Syntax#
**mpc_periodic
[inv
]
\(~\,~\,\) dof nset1 nset2 component1 value1 component2 value2 … tab
**nul_div_u
#
Description#
This relationship imposes a constant volume inside a surface (line set in 2D or face set in 3D) which is linearized by increment. The linearization cumulates an error of the same order as the incremental deformations. The condition may be strictly respected by demanding error correction, but only when the volume is calculated as follows: In 2D:
In axisymmetric:
In 3D:
Note
The surface must be closed, or at the least its limits must have fixed displacements.
This procedure may be introduced in the middle of a calculation by using
***restart
. If the keyword correction
is not present after
***restart
the volume is maintained constant from the instant of
restart. In the contrary case the volume is maintained constant, but by
taking the reference volume as the volume at time \(t=0\).
Syntax#
**nul_div_u
surf_name [correction
dir]
- surf_name
Character name of the line set in 2D or the face set in 3D.
correction
Keyword indicating that the corrections are to be activated.
- dir
Direction indicating the manner which the volume is calculated: In 2D plane geometries:
(78)#\[\begin{split}\begin{aligned} &dir={\bf d1} \quad if \quad V = \int x \, dy \\ &dir={\bf d2} \quad if \quad V = \int y \, dx \end{aligned}\end{split}\]In 2D axisymmetric geometry:
(79)#\[dir={\bf d2} \quad if \quad V = \int 2\pi r z\, dr\]In 3D geometry:
(80)#\[\begin{split}\begin{aligned} & dir={\bf d1} \quad if \quad V =\iint x \, dydz \\ & dir={\bf d2} \quad if \quad V =\iint y \, dzdx \\ & dir={\bf d3} \quad if \quad V =\iint z \, dxdy \end{aligned}\end{split}\]
Example#
***equation
**mpc1 bottom U1
**mpc2 bottom U1 top U2
**mpc3 nset1 20.
**mpc4 nset1 surface1
**nul_div_u faset1
**mpc_rb
#
Description#
This command imposes a rigid body motion relationship between all nodes
of a nset. Mpc can only define linear relationships between dofs, so
that mpc_rb
is only valid under the small displacement assumption.
The relationship is reactualized at every increment, so that mpc_rb
can be reasonably used with finite transformation if the increments are
small enough.
In 3D, 6 “well chosen” master dofs are sufficient to define the rigid body motion (i.e. 3 translation components and 3 rotation components). They are automatically selected so that the three rotation parameters can be determined.
Under the small displacement assumption, the displacement \(\vect{U}_i\) of every node \(i\) (at location \(O_i\)) of the nset can be expressed as:
where \(\vect{U}_m\) and \(\vect{\theta}\) are functions of the 6 master dofs.
Syntax#
**mpc_rb
nset