Flow123d
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
ConcentrationTransportModel Class Referenceabstract

#include <concentration_model.hh>

Inheritance diagram for ConcentrationTransportModel:
Inheritance graph
[legend]
Collaboration diagram for ConcentrationTransportModel:
Collaboration graph
[legend]

Classes

class  ModelEqData
 

Public Member Functions

 ConcentrationTransportModel ()
 
void init_data (unsigned int n_subst_) override
 Initialize model data. E.g. set vector field dimensions. More...
 
void set_component_names (std::vector< string > &names, const Input::Record &in_rec) override
 Temporary solution for sharing data from other equations. More...
 
bool mass_matrix_changed () override
 Check if mass matrix coefficients have changed. More...
 
bool stiffness_matrix_changed () override
 Check if stiffness matrix coefficients have changed. More...
 
bool rhs_changed () override
 Check if right hand side coefficients have changed. More...
 
void compute_mass_matrix_coefficient (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &mm_coef) override
 
void calculate_dispersivity_tensor (const arma::vec3 &velocity, double Dm, double alphaL, double alphaT, double porosity, double cross_cut, arma::mat33 &K)
 
void compute_advection_diffusion_coefficients (const std::vector< arma::vec3 > &point_list, const std::vector< arma::vec3 > &velocity, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< arma::vec3 > > &ad_coef, std::vector< std::vector< arma::mat33 > > &dif_coef) override
 
void compute_init_cond (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< arma::vec > &init_values) override
 
void compute_dirichlet_bc (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< arma::vec > &bc_values) override
 
void compute_source_coefficients (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< arma::vec > &sources_conc, std::vector< arma::vec > &sources_density, std::vector< arma::vec > &sources_sigma) override
 
void compute_sources_sigma (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< arma::vec > &sources_sigma) override
 
 ~ConcentrationTransportModel () override
 
- Public Member Functions inherited from AdvectionDiffusionModel
virtual ~AdvectionDiffusionModel ()
 Destructor. More...
 

Protected Member Functions

virtual ModelEqDatadata ()=0
 Derived class should implement getter for ModelEqData instance. More...
 

Static Protected Member Functions

static IT::Recordget_input_type (const string &implementation, const string &description)
 

Protected Attributes

bool flux_changed
 Indicator of change in advection vector field. More...
 

Detailed Description

Definition at line 37 of file concentration_model.hh.

Constructor & Destructor Documentation

ConcentrationTransportModel::ConcentrationTransportModel ( )

Definition at line 82 of file concentration_model.cc.

ConcentrationTransportModel::~ConcentrationTransportModel ( )
override

Definition at line 247 of file concentration_model.cc.

Member Function Documentation

void ConcentrationTransportModel::calculate_dispersivity_tensor ( const arma::vec3 velocity,
double  Dm,
double  alphaL,
double  alphaT,
double  porosity,
double  cross_cut,
arma::mat33 K 
)

Formula to calculate the dispersivity tensor.

Parameters
velocityFluid velocity.
DmMolecular diffusivity.
alphaLLongitudal dispersivity.
alphaTTransversal dispersivity.
porosityPorosity.
cross_cutCross-section.
KDispersivity tensor (output).

Definition at line 152 of file concentration_model.cc.

Here is the caller graph for this function:

void ConcentrationTransportModel::compute_advection_diffusion_coefficients ( const std::vector< arma::vec3 > &  point_list,
const std::vector< arma::vec3 > &  velocity,
const ElementAccessor< 3 > &  ele_acc,
std::vector< std::vector< arma::vec3 > > &  ad_coef,
std::vector< std::vector< arma::mat33 > > &  dif_coef 
)
overridevirtual

Compute coefficients of stiffness matrix.

Parameters
point_listPoints at which to evaluate.
velocityVelocity field (input). Temporary solution before we can pass data from other equations.
ele_accElement accessor.
ad_coefCoefficients of advection (output).
dif_coefCoefficients of diffusion (output).

Implements AdvectionDiffusionModel.

Definition at line 170 of file concentration_model.cc.

void ConcentrationTransportModel::compute_dirichlet_bc ( const std::vector< arma::vec3 > &  point_list,
const ElementAccessor< 3 > &  ele_acc,
std::vector< arma::vec > &  bc_values 
)
overridevirtual

Computes the Dirichlet boundary condition values.

Parameters
point_listPoints at which to evaluate.
ele_accElement accessor.
bc_valuesVector of b.c. values (output).

Implements AdvectionDiffusionModel.

Definition at line 204 of file concentration_model.cc.

void ConcentrationTransportModel::compute_init_cond ( const std::vector< arma::vec3 > &  point_list,
const ElementAccessor< 3 > &  ele_acc,
std::vector< arma::vec > &  init_values 
)
overridevirtual

Compute initial conditions.

Parameters
point_listPoints at which to evaluate.
ele_accElement accessor.
init_valuesVector of intial values (output).

Implements AdvectionDiffusionModel.

Definition at line 196 of file concentration_model.cc.

void ConcentrationTransportModel::compute_mass_matrix_coefficient ( const std::vector< arma::vec3 > &  point_list,
const ElementAccessor< 3 > &  ele_acc,
std::vector< double > &  mm_coef 
)
overridevirtual

Compute coefficients of mass matrix.

Parameters
point_listPoints at which to evaluate.
ele_accElement accessor.
mm_coefCoefficient vector (output).

Implements AdvectionDiffusionModel.

Definition at line 138 of file concentration_model.cc.

void ConcentrationTransportModel::compute_source_coefficients ( const std::vector< arma::vec3 > &  point_list,
const ElementAccessor< 3 > &  ele_acc,
std::vector< arma::vec > &  sources_conc,
std::vector< arma::vec > &  sources_density,
std::vector< arma::vec > &  sources_sigma 
)
overridevirtual

Compute coefficients of volume sources.

Parameters
point_listPoints at which to evaluate.
ele_accElement accessor.
sources_concSource concentrations (output).
sources_densitySource densities (output).
sources_sigmaSource sigmas (output).

Implements AdvectionDiffusionModel.

Definition at line 212 of file concentration_model.cc.

void ConcentrationTransportModel::compute_sources_sigma ( const std::vector< arma::vec3 > &  point_list,
const ElementAccessor< 3 > &  ele_acc,
std::vector< arma::vec > &  sources_sigma 
)
overridevirtual

Compute coefficients of volume sources.

Parameters
point_listPoints at which to evaluate.
ele_accElement accessor.
sources_sigmaSource sigmas (output).

Implements AdvectionDiffusionModel.

Definition at line 233 of file concentration_model.cc.

virtual ModelEqData& ConcentrationTransportModel::data ( )
protectedpure virtual

Derived class should implement getter for ModelEqData instance.

Here is the caller graph for this function:

IT::Record & ConcentrationTransportModel::get_input_type ( const string &  implementation,
const string &  description 
)
staticprotected

Create input type that can be passed to the derived class.

Parameters
implementationString characterizing the numerical method, e.g. DG, FEM, FVM.
descriptionComment used to describe the record key.
Returns

Definition at line 64 of file concentration_model.cc.

void ConcentrationTransportModel::init_data ( unsigned int  n_subst_)
overridevirtual

Initialize model data. E.g. set vector field dimensions.

Implements AdvectionDiffusionModel.

Definition at line 87 of file concentration_model.cc.

bool ConcentrationTransportModel::mass_matrix_changed ( )
overridevirtual

Check if mass matrix coefficients have changed.

Implements AdvectionDiffusionModel.

Definition at line 112 of file concentration_model.cc.

bool ConcentrationTransportModel::rhs_changed ( )
overridevirtual

Check if right hand side coefficients have changed.

Implements AdvectionDiffusionModel.

Definition at line 129 of file concentration_model.cc.

void ConcentrationTransportModel::set_component_names ( std::vector< string > &  names,
const Input::Record in_rec 
)
overridevirtual

Temporary solution for sharing data from other equations.

Read or set names of solution components.

Implements AdvectionDiffusionModel.

Definition at line 106 of file concentration_model.cc.

bool ConcentrationTransportModel::stiffness_matrix_changed ( )
overridevirtual

Check if stiffness matrix coefficients have changed.

Implements AdvectionDiffusionModel.

Definition at line 118 of file concentration_model.cc.

Member Data Documentation

bool ConcentrationTransportModel::flux_changed
protected

Indicator of change in advection vector field.

Definition at line 84 of file concentration_model.hh.


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