Entwicklung einer Bibliothek für Methoden zur Einarbeitung von Zwangsbedingungen im Forschungscode dockSIM
J. Boungard, J. Wackerfuß
It can be shown that all methods capable of handling aribtraty multi-point constraints in the finite element method the existing constraint methods can be implemented in a generalized concept. For this purpose, a library of constraint methods is employed. This library provides templates for functions that are required for the constraint methods. The following operations have to be performed in some or all constraint method:
- Computation of the effective stiffness matrix and the effective residual needed for the effective linear system. This is required for every constraint method.
- Computation of the constraint forces. This is not necessary but a very valuable help for the user of constraint methods.
- Additional computations based on the solution of the effective linear system. This is required for the decondensation in the master-slave elimination. In the multiplier methods, this operation is required if the Lagrange multipliers are not part of the overall degrees of freedom but stored separately. In this case, a function is required to separate the solution of Lagrange multipliers from the effective linear system.
- Additional allocations respectively reallocations. The necessity depends on the specific implementation. If the structure of the system matrix is prepared without taking the constraint method into account, the computations within the constraint method will change this structure. This is the case for all constraint methods because constraint equations can have a different connectivity of the dofs than the finite elements.
In addition, there might be additional technical or post-processing functions depending on the implementation and the desired output.
In dockSIM, the following functions are part of the constraint methods library:
- <constraintMethodName>_constraintHandlingStrategyLibrary_create: This function checks the input of the specific constraint method given by the user of the finite element software. If the input is valid, all relevant parameters of the constraint methods are stored in the data structure, e.g. the penalty factor beta in the penalty method. If the input is invalid, the user gets specific error messages.
- <constraintMethodName>_constraintHandlingStrategyLibrary_help: This function allows the user to get specific information on the method. This means both information on reference for the theoretical basis of the method as well as information on the parameters and options with respect to the input.
- <constraintMethodName>_constraintHandlingStrategyLibrary_calculate: In this function, the actual computation of the effective stiffness matrix and the effective residual. This includes the computation of the constraint quantities as well as the constraint forces. In the master-slave elimination, the slave dof selection and redundancy treatment is performed by this function too.
- <constraintMethodName>_constraintHandlingStrategyLibrary_preprocessingConvergence: This is a technical function that is required for the correct computation of the energy norm of the current iteration step k. Here, the increment of the last iteration step is used. This is due to the fact that it is possible in dockSIM to check the convergence based on the residual before the solution of the linear system. For the master-slave elimination as well as the multiplier methods, the dimensions of the quantities do not match.
- <constraintMethodName>_constraintHandlingStrategyLibrary_postprocessingIncrement: In this function, the additional computations and reallocations are performed. This can be done in one step because the effective stiffness matrix and the effective residual are not used in the following iteration.
In addition, there are technical functions that are not presented for the sake of brevity.