**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
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