**impose_nodal_energy#

Description#

The boundary condition allows to impose the value of a degree of freedom over a node set such that the resulting energy is smaller than a given value. The energy is computed using a trapezoidal rule as

(30)#\[E = \dfrac{1}{2}\sum_{i=0}^{N_{incr}} \Delta^i RU\cdot\Delta^i U \Delta^i t\]

where \(\Delta^i U\) is the imposed increment of the degree of freedom during \(\Delta^i t\), and \(\Delta^i RU\) is the increment of reaction forces. If the energy is bigger than the specified value, the imposed DOFs will be released gradually during the given release time.

Syntax#

**impose_nodal_energy \(~\,~\,\) name_nset dof_name  max_energy  release_dt value name_table

name_nset

the name of a valid node set.

dof_name

The character name of the degree of freedom to be imposed.

max_energy

is the value of the maximum allowed energy. When this value is exceeded, the value of the imposed DOF will be decreased.

release_dt

the load will be removed during this time increment of time.

value

is the imposed value of DOF (to be multiplied by the table specified afterwards).

table

character name or list of names for the tables to be used (see ***table).

Example#

In this example, a value of \(U_2 =1\) is imposed on top node set over two increments. During the first increment, the value of maximum energy is already exceeded. At the next increment (\(\Delta t=0.5>\)release_dt = 0.1), the imposed U2 is set back to zero.

***bc
 **impose_nodal_dof
   bottom U2 0.
   1 U1 0.
 **impose_nodal_energy
   top U2 1000. 0.1 1. time

The output:

seq:  1 incr:  1 dt:0.5      t:0.5
 iter:  1 | R |/| Fext |= 7.849e-16  | Fext |=100000.

 IMPOSE_NODAL_ENERGY : energy is 25000
seq:  1 incr:  2 dt:0.5      t:1
 iter:  1 | R |max= 6.482e-11 for dof U2 at node 8  | Fext |=8.15939e-11