OGS
ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::IsotropicCalculator Struct Reference

Detailed Description

template<typename ShapeFunction, int GlobalDim>
struct ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::IsotropicCalculator

Calculator of the Laplacian and the gravity term for isotropic permeability tensor

Definition at line 186 of file LiquidFlowLocalAssembler.h.

Static Public Member Functions

static void calculateLaplacianAndGravityTerm (Eigen::Map< NodalMatrixType > &local_K, Eigen::Map< NodalVectorType > &local_b, IntegrationPointData< GlobalDimNodalMatrixType > const &ip_data, GlobalDimMatrixType const &permeability_with_density_factor, double const mu, double const rho_L, GlobalDimVectorType const &specific_body_force, bool const has_gravity)
 
static Eigen::Matrix< double, GlobalDim, 1 > calculateVelocity (Eigen::Map< const NodalVectorType > const &local_p, IntegrationPointData< GlobalDimNodalMatrixType > const &ip_data, GlobalDimMatrixType const &permeability, double const mu, double const rho_L, GlobalDimVectorType const &specific_body_force, bool const has_gravity)
 

Member Function Documentation

◆ calculateLaplacianAndGravityTerm()

template<typename ShapeFunction , int GlobalDim>
void ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::IsotropicCalculator::calculateLaplacianAndGravityTerm ( Eigen::Map< NodalMatrixType > & local_K,
Eigen::Map< NodalVectorType > & local_b,
IntegrationPointData< GlobalDimNodalMatrixType > const & ip_data,
GlobalDimMatrixType const & permeability_with_density_factor,
double const mu,
double const rho_L,
GlobalDimVectorType const & specific_body_force,
bool const has_gravity )
static

Definition at line 332 of file LiquidFlowLocalAssembler-impl.h.

340{
341 const double K = permeability_with_density_factor(0, 0) / mu;
342 const double fac = K * ip_data.integration_weight;
343 local_K.noalias() += fac * ip_data.dNdx.transpose() * ip_data.dNdx;
344
345 if (has_gravity)
346 {
347 local_b.noalias() +=
348 (fac * rho_L) * ip_data.dNdx.transpose() * specific_body_force;
349 }
350}

References ProcessLib::LiquidFlow::IntegrationPointData< GlobalDimNodalMatrixType >::dNdx, and ProcessLib::LiquidFlow::IntegrationPointData< GlobalDimNodalMatrixType >::integration_weight.

◆ calculateVelocity()

template<typename ShapeFunction , int GlobalDim>
Eigen::Matrix< double, GlobalDim, 1 > ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::IsotropicCalculator::calculateVelocity ( Eigen::Map< const NodalVectorType > const & local_p,
IntegrationPointData< GlobalDimNodalMatrixType > const & ip_data,
GlobalDimMatrixType const & permeability,
double const mu,
double const rho_L,
GlobalDimVectorType const & specific_body_force,
bool const has_gravity )
static

Definition at line 354 of file LiquidFlowLocalAssembler-impl.h.

361{
362 const double K = permeability(0, 0) / mu;
363 // Compute the velocity
364 GlobalDimVectorType velocity = -K * ip_data.dNdx * local_p;
365 // gravity term
366 if (has_gravity)
367 {
368 velocity += (K * rho_L) * specific_body_force;
369 }
370 return velocity;
371}
typename ShapeMatricesType::GlobalDimVectorType GlobalDimVectorType

References ProcessLib::LiquidFlow::IntegrationPointData< GlobalDimNodalMatrixType >::dNdx.


The documentation for this struct was generated from the following files: