Boundary Conditions
To enforce Dirichlet boundary conditions in numgeo, the following procedure is applied:
-
The right-hand side (RHS) force vector is adjusted to account for any prescribed displacements. These prescribed values are stored in the reaction-force slots of the corresponding degrees of freedom (DOFs).
-
The appropriate rows and columns of the global stiffness matrix are cleared, and ones are inserted along the corresponding diagonal entries to enforce the constraints.
This process is illustrated in the figure below:
Since numgeo solves for the correction \(c_i\) to the solution increment \(\Delta u_i\) (as described in the section on the Newton-Raphson method), any prescribed displacements stored in the reaction-force slots must be set to zero (e.g., \(\bar{u}_3 = 0\)).
Static Boundary Conditions
For boundary conditions defined using *Boundary
or *Uboundary
, the modifications described above are applied during the initial assembly of each step-specifically, during the evaluation of the sparsity pattern of the global system of equations. Since only non-zero entries are assembled, the prescribed DOFs are entirely removed from the system matrix for that step.
This approach is computationally efficient, as it reduces the system size and accelerates the solution process. However, it comes with a limitation: the constraint status of a DOF cannot change within the same step. While the value of a constrained DOF may vary with time, its state (constrained or unconstrained) remains fixed throughout the step.
Flexible Boundary Conditions
To represent boundary conditions that may become active or inactive during the same step, use the *Flexible-Boundary
command. In this case, the enforcement follows the same principles as above (adjusting the RHS and modifying the stiffness matrix), but the updates are applied dynamically during each iteration by modifying the already assembled system of equations.
Although this approach is computationally more expensive - due to repeated zeroing and modification of rows and columns - it offers the flexibility to change the constraint status of DOFs at any point during a step.