Provides methods for transmissibility calculation in 3-d. More...
#include <dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh>
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 [75]
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... | |
using Dumux::FvMpfaL3dTransmissibilityCalculator< TypeTag >::TransmissibilityType = Dune::FieldMatrix<Scalar, dim, 2*dim - dim + 1> |
Type of the transmissibility matrix.
|
inline |
Constructs a FvMpfaL3dTransmissibilityCalculator object.
problem | A problem class object |
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).
transmissibilityOne | A first transmissibility matrix |
transmissibilityTwo | A second transmissibility matrix |
lTypeOne | Type of the L-shape of the first matrix (1-4) |
lTypeTwo | Type of the L-shape of the second matrix (1-4) |
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 | ||
) |
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 | ||
) |
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 [76]
Wolff et al. 2013 [75]
transmissibility | Reference to the local transmissibility matrix |
interactionVolume | An interaction volume object |
lambda | A vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index |
idx1 | Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx2 | Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx3 | Local index of cell 3 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa |
idx6 | Local index of cell 6 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
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 [76]
Wolff et al. 2013 [75]
transmissibility | Reference to the local transmissibility matrix |
interactionVolume | An interaction volume object |
lambda | A vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index |
idx1 | Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx2 | Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx3 | Local index of cell 3 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa |
idx5 | Local index of cell 5 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
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 [76]
Wolff et al. 2013 [75]
transmissibility | Reference to the local transmissibility matrix |
interactionVolume | An interaction volume object |
lambda | A vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index |
idx1 | Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx2 | Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx4 | Local index of cell 4 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa |
idx5 | Local index of cell 5 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
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 [76]
Wolff et al. 2013 [75]
transmissibility | Reference to the local transmissibility matrix |
interactionVolume | An interaction volume object |
lambda | A vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index |
idx1 | Local index of cell 1 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx2 | Local index of cell 2 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx4 | Local index of cell 4 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa |
idx6 | Local index of cell 6 of 6 cells for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
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.
transmissibility | Reference to the local transmissibility matrix |
interactionVolume | An interaction volume object |
lambda | A vector containing the mobilities of the interaction volume cells in the order of the local interaction volume index |
idx1 | Local index of cell 1 for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |
idx2 | Local index of cell 2 for the calculation of the flux between cell idx1 and idx2 (see doc/docextra/3dmpfa) |