3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | List of all members
Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag > Class Template Reference

Provides methods for transmissibility calculation in 3-d. More...

#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh>

Description

template<class TypeTag>
class Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >

Provides methods for transmissibility calculation in 3-d.

The transmissibilities are calculated using the MPFA L-method.

Aavatsmark et al. 2010 [1]
Wolff et al. 2013 [72]

Various parameters can be defined via an input parameter file or the property system:

MPFAEnableSimpleLStencil - enables the two centered flux stencils MPFAEnableComplexLStencil - enables the two non-centered flux stencils MPFAEnableTPFA - enables the use of TPFA if neighboring cells are of the same grid level MPFATransmissibilityCriterion - 0: Criterion of [1] (default), 1: Criterion of [2]

Public Types

using TransmissibilityType = Dune::FieldMatrix< Scalar, dim, 2 *dim - dim+1 >
 Type of the transmissibility matrix. More...
 

Public Member Functions

int chooseTransmissibility (TransmissibilityType &transmissibilityOne, TransmissibilityType &transmissibilityTwo, int lTypeOne, int lTypeTwo)
 Compares two transmissibility matrices according to a L-selection criterion. More...
 
int transmissibility (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx3, int idx4, int idx5, int idx6)
 
int transmissibility (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx3, int idx4, int idx5, int idx6, Dune::FieldVector< bool, 4 > &useCases)
 
int transmissibilityTPFA (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2)
 Calculates a TPFA transmissibility matrix for the flux face between the cells with the local index idx1 and idx2. More...
 
int transmissibilityCaseOne (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx3, int idx5)
 Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 1. More...
 
int transmissibilityCaseTwo (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx4, int idx6)
 Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 2. More...
 
int transmissibilityCaseThree (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx4, int idx5)
 Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 3. More...
 
int transmissibilityCaseFour (Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &transmissibility, InteractionVolume &interactionVolume, std::vector< DimVector > &lambda, int idx1, int idx2, int idx3, int idx6)
 Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 4. More...
 
 FvMpfaL3dTransmissibilityCalculator (Problem &problem)
 Constructs a FvMpfaL3dTransmissibilityCalculator object. More...
 

Member Typedef Documentation

◆ TransmissibilityType

template<class TypeTag >
using Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::TransmissibilityType = Dune::FieldMatrix<Scalar, dim, 2*dim - dim + 1>

Type of the transmissibility matrix.

Constructor & Destructor Documentation

◆ FvMpfaL3dTransmissibilityCalculator()

template<class TypeTag >
Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::FvMpfaL3dTransmissibilityCalculator ( Problem &  problem)
inline

Constructs a FvMpfaL3dTransmissibilityCalculator object.

Parameters
problemA problem class object

Member Function Documentation

◆ chooseTransmissibility()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::chooseTransmissibility ( TransmissibilityType transmissibilityOne,
TransmissibilityType transmissibilityTwo,
int  lTypeOne,
int  lTypeTwo 
)

Compares two transmissibility matrices according to a L-selection criterion.

Compares two transmissibility matrices according to the L-selection criterion which is chosen via the parameter/property MPFATransmissibilityCriterion (Criterion of [1], 1: Criterion of [2]) and returns the number of the preferable L-shape (1-4).

Parameters
transmissibilityOneA first transmissibility matrix
transmissibilityTwoA second transmissibility matrix
lTypeOneType of the L-shape of the first matrix (1-4)
lTypeTwoType of the L-shape of the second matrix (1-4)
Returns
The type of the preferable L-shape (1-4)

◆ transmissibility() [1/2]

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibility ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx3,
int  idx4,
int  idx5,
int  idx6 
)

◆ transmissibility() [2/2]

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibility ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx3,
int  idx4,
int  idx5,
int  idx6,
Dune::FieldVector< bool, 4 > &  useCases 
)

◆ transmissibilityCaseFour()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibilityCaseFour ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx3,
int  idx6 
)

Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 4.

For more details on L-shape type 4 see:

Wolff, 2013 [73]
Wolff et al. 2013 [72]

Parameters
transmissibilityReference to the local transmissibility matrix
interactionVolumeAn interaction volume object
lambdaA vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index
idx1Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx2Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx3Local index of cell 3 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa
idx6Local index of cell 6 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
Returns
4 (L-shape 4)

◆ transmissibilityCaseOne()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibilityCaseOne ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx3,
int  idx5 
)

Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 1.

For more details on L-shape type 1 see:

Wolff, 2013 [73]
Wolff et al. 2013 [72]

Parameters
transmissibilityReference to the local transmissibility matrix
interactionVolumeAn interaction volume object
lambdaA vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index
idx1Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx2Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx3Local index of cell 3 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa
idx5Local index of cell 5 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
Returns
1 (L-shape 1)

◆ transmissibilityCaseThree()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibilityCaseThree ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx4,
int  idx5 
)

Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 3.

For more details on L-shape type 3 see:

Wolff, 2013 [73]
Wolff et al. 2013 [72]

Parameters
transmissibilityReference to the local transmissibility matrix
interactionVolumeAn interaction volume object
lambdaA vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index
idx1Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx2Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx4Local index of cell 4 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa
idx5Local index of cell 5 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
Returns
3 (L-shape 3)

◆ transmissibilityCaseTwo()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibilityCaseTwo ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2,
int  idx4,
int  idx6 
)

Calculates the transmissibility matrix for the flux face between the cells with the local index idx1 and idx2 using the L-shape type 2.

For more details on L-shape type 2 see:

Wolff, 2013 [73]
Wolff et al. 2013 [72]

Parameters
transmissibilityReference to the local transmissibility matrix
interactionVolumeAn interaction volume object
lambdaA vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index
idx1Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx2Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx4Local index of cell 4 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa
idx6Local index of cell 6 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
Returns
2 (L-shape 2)

◆ transmissibilityTPFA()

template<class TypeTag >
int Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::transmissibilityTPFA ( Dune::FieldMatrix< Scalar, dim, 2 *dim-dim+1 > &  transmissibility,
InteractionVolume &  interactionVolume,
std::vector< DimVector > &  lambda,
int  idx1,
int  idx2 
)

Calculates a TPFA transmissibility matrix for the flux face between the cells with the local index idx1 and idx2.

Parameters
transmissibilityReference to the local transmissibility matrix
interactionVolumeAn interaction volume object
lambdaA vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index
idx1Local index of cell 1 for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)
idx2Local index of cell 2 for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa)

The documentation for this class was generated from the following file: