Base class for linear local assemblers. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh>
Base class for linear local assemblers.
This class serves as a base class for linear local assemblers. It provides space and access to the local stiffness matrix. The actual assembling is done in a derived class via the virtual assemble method.
TypeTag | The problem TypeTag |
m | number of degrees of freedom per node (system size) |
Public Types | |
using | MBlockType = Dune::FieldMatrix< Scalar, m, m > |
using | VBlockType = Dune::FieldVector< Scalar, m > |
using | BCBlockType = std::array< BoundaryConditions::Flags, m > |
using | BoundaryTypes = GetPropType< TypeTag, Properties::BoundaryTypes > |
Public Member Functions | |
LinearLocalStiffness () | |
virtual | ~LinearLocalStiffness () |
virtual void | assemble (const Entity &e, int k=1)=0 |
Assembles local stiffness matrix including boundary conditions for given element and order. More... | |
virtual void | assemble (const Entity &e, const Dune::BlockVector< VBlockType > &localSolution, int k=1) |
Assembles local stiffness matrix including boundary conditions for given element and order. More... | |
virtual void | assembleBoundaryCondition (const Entity &e, int k=1)=0 |
assemble only boundary conditions for given element and order More... | |
void | print (std::ostream &s, int width, int precision) |
Prints contents of local stiffness matrix. More... | |
const MBlockType & | mat (int i, int j) const |
Accesses the local stiffness matrix. More... | |
const VBlockType & | rhs (int i) const |
Accesses right hand side. More... | |
const BoundaryTypes & | bc (int i) const |
Accesses boundary condition for each dof. More... | |
void | setcurrentsize (int s) |
Sets the current size of the local stiffness matrix. More... | |
int | currentsize () |
Gets the current size of the local stiffness matrix. More... | |
Protected Attributes | |
Dune::Matrix< MBlockType > | A |
std::vector< VBlockType > | b |
std::vector< BoundaryTypes > | bctype |
using Dumux::LinearLocalStiffness< TypeTag, m >::BCBlockType = std::array<BoundaryConditions::Flags, m> |
|
inherited |
using Dumux::LinearLocalStiffness< TypeTag, m >::MBlockType = Dune::FieldMatrix<Scalar, m, m> |
using Dumux::LinearLocalStiffness< TypeTag, m >::VBlockType = Dune::FieldVector<Scalar, m> |
|
inline |
Initialize local stiffness matrix
|
inlinevirtual |
|
inlinevirtual |
Assembles local stiffness matrix including boundary conditions for given element and order.
Since this is a base class for linear assemblers, the local solution will be ignored.
e | a codim 0 entity reference |
localSolution | The current solution on the entity, which is needed by nonlinear assemblers |
k | order of Lagrange basis (default is 1) |
Implements Dumux::LocalStiffness< TypeTag, m >.
|
pure virtual |
Assembles local stiffness matrix including boundary conditions for given element and order.
On exit the following things have been done:
e | a codim 0 entity reference |
k | order of Lagrange basis (default is 1) |
Implements Dumux::LocalStiffness< TypeTag, m >.
|
pure virtualinherited |
assemble only boundary conditions for given element and order
On exit the following things have been done:
e | a codim 0 entity reference |
k | order of Lagrange basis (default is 1) |
|
inlineinherited |
Accesses boundary condition for each dof.
Access boundary condition type for each degree of freedom. Elements are undefined without prior call to the assemble method.
i | index i |
|
inlineinherited |
Gets the current size of the local stiffness matrix.
|
inlineinherited |
Accesses the local stiffness matrix.
Access elements of the local stiffness matrix. Elements are undefined without prior call to the assemble method.
i | index i |
j | index j |
|
inlineinherited |
Prints contents of local stiffness matrix.
s | output stream |
width | the width |
precision | the precision |
|
inlineinherited |
Accesses right hand side.
Access elements of the right hand side vector. Elements are undefined without prior call to the assemble method.
i | index i |
|
inlineinherited |
Sets the current size of the local stiffness matrix.
s | size which is to be set |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |