3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Files | Classes | Enumerations | Functions

Assembly of linear systems (Jacobian and residual) More...

Description

Assembly of linear systems (Jacobian and residual)

Files

file  boxlocalassembler.hh
 An assembler for Jacobian and residual contribution per element (box method)
 
file  boxlocalresidual.hh
 Calculates the element-wise residual for the box scheme.
 
file  cclocalassembler.hh
 An assembler for Jacobian and residual contribution per element (cell-centered methods)
 
file  cclocalresidual.hh
 Calculates the element-wise residual for cell-centered discretization schemes.
 
file  coloring.hh
 Coloring schemes for shared-memory-parallel assembly.
 
file  cvfelocalresidual.hh
 Calculates the element-wise residual for control-volume finite element schemes.
 
file  diffmethod.hh
 An enum class to define various differentiation methods available in order to compute the derivatives of the residual i.e. the entries in the jacobian matrix.
 
file  entitycolor.hh
 An enum class to define the colors of elements and vertices required for partial Jacobian reassembly.
 
file  fcdiamondlocalassembler.hh
 An assembler for Jacobian and residual contribution per element (face-centered diamond methods)
 
file  fclocalassembler.hh
 An assembler for Jacobian and residual contribution per element (face-centered staggered methods)
 
file  fclocalresidual.hh
 Calculates the element-wise residual for the box scheme.
 
file  assembly/fvassembler.hh
 A linear system assembler (residual and Jacobian) for finite volume schemes.
 
file  fvlocalassemblerbase.hh
 
file  fvlocalresidual.hh
 The element-wise residual for finite volume schemes.
 
file  initialsolution.hh
 Function to create initial solution vectors.
 
file  jacobianpattern.hh
 Helper function to generate Jacobian pattern for different discretization methods.
 
file  numericepsilon.hh
 An adapter class for local assemblers using numeric differentiation.
 
file  partialreassembler.hh
 Detects which entries in the Jacobian have to be recomputed.
 
file  pq1bubblelocalassembler.hh
 An assembler for Jacobian and residual contribution per element (pq1bubble method)
 
file  staggeredfvassembler.hh
 A linear system assembler (residual and Jacobian) for staggered finite volume schemes.
 
file  staggeredlocalresidual.hh
 Calculates the element-wise residual for the staggered FV scheme.
 
file  multidomain/fvassembler.hh
 A linear system assembler (residual and Jacobian) for finite volume schemes with multiple domains.
 
file  subdomainboxlocalassembler.hh
 An assembler for Jacobian and residual contribution per element (box methods) for multidomain problems.
 
file  subdomaincclocalassembler.hh
 A multidomain local assembler for Jacobian and residual contribution per element (cell-centered methods)
 
file  subdomainfcdiamondlocalassembler.hh
 An assembler for Jacobian and residual contribution per element (face-centered diamond methods) for multidomain problems.
 
file  subdomainfclocalassembler.hh
 An assembler for Jacobian and residual contribution per element (face-centered staggered methods) for multidomain problems.
 
file  subdomainpq1bubblelocalassembler.hh
 An assembler for Jacobian and residual contribution per element for multidomain problems.
 
file  subdomainstaggeredlocalassembler.hh
 A multidomain assembler for Jacobian and residual contribution per element (staggered method)
 

Classes

class  Dumux::BoxLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >
 A base class for all local box assemblers. More...
 
class  Dumux::BoxLocalAssembler< TypeTag, Assembler, diffMethod, implicit >
 An assembler for Jacobian and residual contribution per element (box methods) More...
 
class  Dumux::BoxLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, true >
 Box local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::BoxLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, false >
 Box local assembler using numeric differentiation and explicit time discretization. More...
 
class  Dumux::BoxLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, true >
 Box local assembler using analytic differentiation and implicit time discretization. More...
 
class  Dumux::BoxLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, false >
 Box local assembler using analytic differentiation and explicit time discretization. More...
 
class  Dumux::CCLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >
 A base class for all local cell-centered assemblers. More...
 
class  Dumux::CCLocalAssembler< TypeTag, Assembler, diffMethod, implicit >
 An assembler for Jacobian and residual contribution per element (cell-centered methods) More...
 
class  Dumux::CCLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, true >
 Cell-centered scheme local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::CCLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, false >
 Cell-centered scheme local assembler using numeric differentiation and explicit time discretization. More...
 
class  Dumux::CCLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, true >
 Cell-centered scheme local assembler using analytic (hand-coded) differentiation and implicit time discretization. More...
 
class  Dumux::CCLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, false >
 Cell-centered scheme local assembler using analytic (hand-coded) differentiation and explicit time discretization. More...
 
class  Dumux::CCLocalResidual< TypeTag >
 Calculates the element-wise residual for the cell-centered discretization schemes. More...
 
class  Dumux::CVFELocalResidual< TypeTag >
 The element-wise residual for control-volume finite element schemes. More...
 
class  Dumux::FaceCenteredDiamondLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >
 A base class for all local face-centered assemblers. More...
 
class  Dumux::FaceCenteredDiamondLocalAssembler< TypeTag, Assembler, diffMethod, implicit, Implementation >
 An assembler for Jacobian and residual contribution per element (Face-centered methods) More...
 
class  Dumux::FaceCenteredDiamondLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, true, Implementation >
 Face-centered scheme local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::FaceCenteredDiamondLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, false >
 TODO docme. More...
 
class  Dumux::FaceCenteredDiamondLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, true >
 TODO docme. More...
 
class  Dumux::FaceCenteredDiamondLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, false >
 TODO docme. More...
 
class  Dumux::FaceCenteredLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >
 A base class for all local cell-centered assemblers. More...
 
class  Dumux::FaceCenteredLocalAssembler< TypeTag, Assembler, diffMethod, implicit, Implementation >
 An assembler for Jacobian and residual contribution per element (Face-centered methods) More...
 
class  Dumux::FaceCenteredLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, true, Implementation >
 Face-centered scheme local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::FaceCenteredLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, false, Implementation >
 TODO docme. More...
 
class  Dumux::FaceCenteredLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, true, Implementation >
 TODO docme. More...
 
class  Dumux::FaceCenteredLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, false, Implementation >
 TODO docme. More...
 
class  Dumux::FaceCenteredLocalResidual< TypeTag >
 The element-wise residual for the box scheme. More...
 
class  Dumux::FVAssembler< TypeTag, diffMethod, isImplicit >
 A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) More...
 
class  Dumux::FVLocalAssemblerBase< TypeTag, Assembler, Implementation, useImplicitAssembly >
 A base class for all local assemblers. More...
 
class  Dumux::FVLocalResidual< TypeTag >
 The element-wise residual for finite volume schemes. More...
 
class  Dumux::NumericEpsilon< Scalar, numEq >
 A helper class for local assemblers using numeric differentiation to determine the epsilon. More...
 
class  Dumux::PartialReassemblerEngine< Assembler, DiscretizationMethods::Box >
 The partial reassembler engine specialized for the box method. More...
 
class  Dumux::PartialReassemblerEngine< Assembler, DiscretizationMethods::CCTpfa >
 The partial reassembler engine specialized for the cellcentered TPFA method. More...
 
class  Dumux::PartialReassemblerEngine< Assembler, DiscretizationMethods::CCMpfa >
 The partial reassembler engine specialized for the cellcentered MPFA method. More...
 
class  Dumux::PartialReassembler< Assembler >
 detects which entries in the Jacobian have to be recomputed More...
 
class  Dumux::PQ1BubbleLocalAssemblerBase< TypeTag, Assembler, Implementation, implicit >
 A base class for all local pq1bubble assemblers. More...
 
class  Dumux::PQ1BubbleLocalAssembler< TypeTag, Assembler, diffMethod, implicit, Implementation >
 An assembler for Jacobian and residual contribution per element (PQ1Bubble methods) More...
 
class  Dumux::PQ1BubbleLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, true, Implementation >
 Face-centered scheme local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::PQ1BubbleLocalAssembler< TypeTag, Assembler, DiffMethod::numeric, false >
 TODO docme. More...
 
class  Dumux::PQ1BubbleLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, true >
 TODO docme. More...
 
class  Dumux::PQ1BubbleLocalAssembler< TypeTag, Assembler, DiffMethod::analytic, false >
 TODO docme. More...
 
class  Dumux::StaggeredFVAssembler< TypeTag, diffMethod, isImplicit >
 A linear system assembler (residual and Jacobian) for staggered finite volume schemes. This is basically just a wrapper for the MultiDomainFVAssembler which simplifies the set-up of uncoupled problems using the staggered scheme. More...
 
class  Dumux::StaggeredLocalResidual< TypeTag >
 Calculates the element-wise residual for the staggered FV scheme. More...
 
struct  Dumux::CouplingManagerSupportsMultithreadedAssembly< CM >
 trait that is specialized for coupling manager supporting multithreaded assembly More...
 
class  Dumux::MultiDomainFVAssembler< MDTraits, CMType, diffMethod, useImplicitAssembly >
 A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) with multiple domains. More...
 
class  Dumux::SubDomainBoxLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >
 A base class for all box local assemblers. More...
 
class  Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The box scheme multidomain local assembler. More...
 
class  Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Box scheme multi domain local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainBoxLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >
 Box scheme multi domain local assembler using numeric differentiation and explicit time discretization. More...
 
class  Dumux::SubDomainCCLocalAssemblerBase< id, TypeTag, Assembler, Implementation, implicit >
 A base class for all multidomain local assemblers. More...
 
class  Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The cell-centered scheme multidomain local assembler. More...
 
class  Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Cell-centered scheme multidomain local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >
 Cell-centered scheme multidomain local assembler using numeric differentiation and explicit time discretization. More...
 
class  Dumux::SubDomainCCLocalAssembler< id, TypeTag, Assembler, DiffMethod::analytic, true >
 Cell-centered scheme local assembler using analytic differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainFaceCenteredDiamondLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >
 A base class for all face-centered staggered local assemblers. More...
 
class  Dumux::SubDomainFaceCenteredDiamondLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The face-centered staggered scheme multidomain local assembler. More...
 
class  Dumux::SubDomainFaceCenteredDiamondLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Face-centered staggered scheme multi domain local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainFaceCenteredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >
 A base class for all face-centered staggered local assemblers. More...
 
class  Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The face-centered staggered scheme multidomain local assembler. More...
 
class  Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Face-centered staggered scheme multi domain local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainFaceCenteredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, false >
 Face-centered staggered scheme multi domain local assembler using numeric differentiation and explicit time discretization. More...
 
class  Dumux::SubDomainPQ1BubbleLocalAssemblerBase< id, TypeTag, Assembler, Implementation, dm, implicit >
 A base class for PQ1Bubble local assemblers. More...
 
class  Dumux::SubDomainPQ1BubbleLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The PQ1Bubble scheme multidomain local assembler. More...
 
class  Dumux::SubDomainPQ1BubbleLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Control-volume fe staggered scheme multi domain local assembler using numeric differentiation and implicit time discretization. More...
 
class  Dumux::SubDomainStaggeredLocalAssemblerBase< id, TypeTag, Assembler, Implementation, isImplicit >
 A base class for all multidomain local assemblers (staggered) More...
 
class  Dumux::SubDomainStaggeredLocalAssemblerImplicitBase< id, TypeTag, Assembler, Implementation >
 A base class for all implicit multidomain local assemblers (staggered) More...
 
class  Dumux::SubDomainStaggeredLocalAssembler< id, TypeTag, Assembler, DM, implicit >
 The staggered multidomain local assembler. More...
 
class  Dumux::SubDomainStaggeredLocalAssembler< id, TypeTag, Assembler, DiffMethod::numeric, true >
 Staggered scheme local assembler using numeric differentiation and implicit time discretization. More...
 

Enumerations

enum class  Dumux::DiffMethod { Dumux::DiffMethod::numeric , Dumux::DiffMethod::analytic , Dumux::DiffMethod::automatic }
 Differentiation methods in order to compute the derivatives of the residual i.e. the entries in the jacobian matrix. More...
 
enum class  Dumux::EntityColor { Dumux::EntityColor::red , Dumux::EntityColor::yellow , Dumux::EntityColor::orange , Dumux::EntityColor::green }
 The colors of elements and vertices required for partial Jacobian reassembly. More...
 

Functions

template<class SolutionVector , class Problem >
void Dumux::assembleInitialSolution (SolutionVector &sol, const Problem &problem)
 Set a solution vector to the initial solution provided by the problem. More...
 
template<class SolutionVector , class Problem >
SolutionVector Dumux::makeInitialSolution (const Problem &problem)
 Create a solution vector filled with the initial solution provided by the problem. More...
 
template<bool isImplicit, class GridGeometry , typename std::enable_if_t<(GridGeometry::discMethod==DiscretizationMethods::box), int > = 0>
Dune::MatrixIndexSet Dumux::getJacobianPattern (const GridGeometry &gridGeometry)
 Helper function to generate Jacobian pattern for the box method. More...
 
template<class FEBasis >
Dune::MatrixIndexSet Dumux::getFEJacobianPattern (const FEBasis &feBasis)
 Helper function to generate Jacobian pattern for finite element scheme. More...
 

Enumeration Type Documentation

◆ DiffMethod

enum class Dumux::DiffMethod
strong

Differentiation methods in order to compute the derivatives of the residual i.e. the entries in the jacobian matrix.

Todo:
automatic differentation is not yet implemented
Enumerator
numeric 
analytic 
automatic 

◆ EntityColor

enum class Dumux::EntityColor
strong

The colors of elements and vertices required for partial Jacobian reassembly.

Enumerator
red 

distance from last linearization is above the tolerance

yellow 

neighboring entity is red

orange 

A yellow entity that has only non-green neighbor elements.

This means that its relative error is below the tolerance, but its defect can be linearized without any additional cost.

green 

does not need to be reassembled

Function Documentation

◆ assembleInitialSolution()

template<class SolutionVector , class Problem >
void Dumux::assembleInitialSolution ( SolutionVector &  sol,
const Problem &  problem 
)

Set a solution vector to the initial solution provided by the problem.

◆ getFEJacobianPattern()

template<class FEBasis >
Dune::MatrixIndexSet Dumux::getFEJacobianPattern ( const FEBasis &  feBasis)

Helper function to generate Jacobian pattern for finite element scheme.

◆ getJacobianPattern()

template<bool isImplicit, class GridGeometry , typename std::enable_if_t<(GridGeometry::discMethod==DiscretizationMethods::box), int > = 0>
Dune::MatrixIndexSet Dumux::getJacobianPattern ( const GridGeometry &  gridGeometry)

Helper function to generate Jacobian pattern for the box method.

Helper function to generate Jacobian pattern for the face-centered diamond.

Helper function to generate Jacobian pattern for the face-centered methods.

Helper function to generate Jacobian pattern for finite element scheme.

Helper function to generate Jacobian pattern for cell-centered methods.

Helper function to generate Jacobian pattern for the pq1bubble method.

Note
This interface is for compatibility with the other schemes. The pattern in fem is the same independent of the time discretization scheme.

◆ makeInitialSolution()

template<class SolutionVector , class Problem >
SolutionVector Dumux::makeInitialSolution ( const Problem &  problem)

Create a solution vector filled with the initial solution provided by the problem.