ProblemBody.h file
Problem body class managing integrators and boundary conditions.
This file defines the ProblemBody class, which manages the collection of integrators (bilinear and linear forms) and boundary conditions that comprise a variational problem. The ProblemBody serves as a container and coordinator for all components of a finite element formulation.
Role in Problem Assembly
ProblemBody acts as an intermediate layer that:
- Collects all bilinear form integrators (matrix terms)
- Collects all linear form integrators (load vector terms)
- Manages essential (Dirichlet) boundary conditions
- Manages periodic boundary conditions
- Coordinates the assembly process
Design Pattern
The separation of ProblemBody from Problem follows the Bridge pattern, allowing:
- Shared state between different problem types
- Flexible composition of problem components
- Independent evolution of assembly and solution strategies
Namespaces
- namespace Rodin
- The Rodin library for Shape and Topology Optimization.
- namespace Rodin::Variational
- Module which provides the necessary tools for constructing variational problems.
Classes
-
template<class Scalar>class Rodin::Variational::ProblemBodyBase
- Base class representing the body of a variational problem.