|
IPPL API Reference
Independent Parallel Particle Layer C++ API
|
Representation of the lhs of the problem we are trying to solve. More...
#include <FEMMaxwellDiffusionSolver.h>
Collaboration diagram for ippl::EvalFunctor< T, Dim, numElementDOFs >:Public Member Functions | |
| EvalFunctor (Vector< T, Dim > DPhiInvT, T absDetDPhi) | |
| Constructor. | |
| KOKKOS_FUNCTION auto | operator() (size_t i, size_t j, const QuadratureData< Vector< T, Dim >, Vector< T, Dim >, numElementDOFs > &qd) const |
| Returns the evaluation of (curl(b_i)*curl(b_j) + b_i*b_j)*absDetDPhi. | |
| EvalFunctor (Vector< Tlhs, Dim > DPhiInvT, Tlhs absDetDPhi) | |
| KOKKOS_FUNCTION auto | operator() (const size_t &i, const size_t &j, const QuadratureData< Tlhs, Vector< Tlhs, Dim >, numElemDOFs > &qd) const |
Public Attributes | |
| const Vector< T, Dim > | DPhiInvT |
| The inverse transpose Jacobian. | |
| const T | absDetDPhi |
| The determinant of the Jacobian. | |
| const Vector< Tlhs, Dim > | DPhiInvT |
| const Tlhs | absDetDPhi |
Representation of the lhs of the problem we are trying to solve.
In our case this corresponds to the variational formulation of the curl(curl(E)) + E and is curl(b_i)*curl(b_j) + b_i*b_j.
| T | The type we are working with. |
| Dim | the dimension of the space. |
| numElementDOFs | the number of DOFs per element that we have. |
|
inline |
Returns the evaluation of (curl(b_i)*curl(b_j) + b_i*b_j)*absDetDPhi.
This function takes as input the basis function values and their curl for the different DOFs and returns the evaluation of the inner part of the integral of the variational formuation, which corresponds to (curl(b_i)*curl(b_j) + b_i*b_j), but note that we additionally also multiply this with absDetDPhi, which is required by the quadrature rule. In theroy this could also be done outside of this.
| i | The first DOF index. |
| j | The second DOF index. |
| qd | Per-quadrature basis values and curls. |
| const T ippl::EvalFunctor< T, Dim, numElementDOFs >::absDetDPhi |
The determinant of the Jacobian.
As we have a unirectangular grid it is the same for all the differnt Elements and we therefore have to store it only once.
| const Vector<T, Dim> ippl::EvalFunctor< T, Dim, numElementDOFs >::DPhiInvT |
The inverse transpose Jacobian.
As we have a unirectangular grid it is the same for all the differnt Elements and we therefore have to store it only once.