**rigid_body#

Description#

Some direct solvers, like frontal and sparse_direct, are able to automatically detect rigid body motions (i.e kernel) in the factorization step of the local matrices \([K]_i\) (see page ). But some others, like sparse_dscpack, can not automatically detect these rigid body motions, so they have to be indicated to it.

Using this latter solver, the **rigid_body command can be used to find the rigid body motions of each sub-domain, using empirical geometrically criteria, and to write them in the problem.cut and problem.cu files. It should be noticed that this command just runs in 3D with impose_nodal_dof boundary conditions, in the global coordinate system.

Syntax#

**rigid_body \(~\,\) *nset nset1  …  nsetN \(~\,\) *dof dof1  …  dofN

*nset

is the list of all nset names for which an impose_nodal_dof boundary condition exists in the ****calcul module. If several dofs are imposed for an nset, the name of this nset must appear several times.

*dof

is the list of the correspondent dofs.

Note

If the parallel computation is not a 3D one, or if other types of boundary conditions are used, the **rigid_body command should not be used; and the rigid body motions have to be directly specified at the end of the problem.cut file for each sub-domain using the following syntax. It should be noticed that in this case, the problem.cu has to be removed.

**bc sd  nrb \(~\,~\,\) node_1 dof_1node_nrb dof_nrb

Where

sd

is the number of the sub-domain for which rigid-body motions are specified.

nbr

is the number of rigid-body motions for sub-domain sd.

node_i

is a node number.

dof_i

is the dof name for the rigid-body motion at node_i (e.g. U1, U2 or U3).

The information concerning nodes and dofs can be obtained by observing sub-domains, or by running the same computation using a sparse_direct linear solver and by stopping it just after sub-domain matrices factorization.

Note

The sparse_dscpack direct linear solver should not be used if the rigid body motions of a sub-domain change during computation.