Flow123d
release_3.0.0-1211-g84d0b74
|
#include <advection_diffusion_model.hh>
Public Types | |
enum | Abstract_bc_types { abc_inflow, abc_dirichlet, abc_total_flux, abc_diffusive_flux } |
Public Member Functions | |
virtual void | init_from_input (const Input::Record &in_rec)=0 |
Read necessary data from input record. More... | |
virtual void | compute_mass_matrix_coefficient (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &mm_coef)=0 |
virtual void | compute_retardation_coefficient (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &ret_coef)=0 |
virtual 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)=0 |
virtual void | compute_init_cond (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &init_values)=0 |
virtual void | get_bc_type (const ElementAccessor< 3 > &ele_acc, arma::uvec &bc_types)=0 |
virtual void | get_flux_bc_data (unsigned int index, const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_flux, std::vector< double > &bc_sigma, std::vector< double > &bc_ref_value)=0 |
Return data for diffusive or total flux b.c. More... | |
virtual void | get_flux_bc_sigma (unsigned int index, const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_sigma)=0 |
Return transition coefficient for flux b.c. More... | |
virtual void | compute_source_coefficients (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_conc, std::vector< std::vector< double > > &sources_density, std::vector< std::vector< double > > &sources_sigma)=0 |
virtual void | compute_sources_sigma (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_sigma)=0 |
virtual | ~AdvectionDiffusionModel () |
Destructor. More... | |
AdvectionDiffusionModel is a base class for description of a physical process described by the advection-diffusion partial differential equation (PDE). The derived classes define input parameters and implement methods that calculate coefficients of the PDE. These methods are then used by a template class for numerical solution, whose specialization derives from the model class.
Definition at line 35 of file advection_diffusion_model.hh.
Enumerator | |
---|---|
abc_inflow | |
abc_dirichlet | |
abc_total_flux | |
abc_diffusive_flux |
Definition at line 38 of file advection_diffusion_model.hh.
|
inlinevirtual |
Destructor.
Definition at line 165 of file advection_diffusion_model.hh.
|
pure virtual |
Compute coefficients of stiffness matrix.
point_list | Points at which to evaluate. |
velocity | Velocity field (input). Temporary solution before we can pass data from other equations. |
ele_acc | Element accessor. |
ad_coef | Coefficients of advection (output). |
dif_coef | Coefficients of diffusion (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Compute initial conditions.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
init_values | Vector of intial values (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Compute coefficients of mass matrix.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
mm_coef | Coefficient vector (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Compute retardation coefficients due to sorption.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
ret_coef | Coefficient vector (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Compute coefficients of volume sources.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
sources_conc | Source concentrations (output). |
sources_density | Source densities (output). |
sources_sigma | Source sigmas (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Compute coefficients of volume sources.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
sources_sigma | Source sigmas (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Return types of boundary conditions for each solution component.
ele_acc | Element accessor. |
bc_types | Vector of bc. types (output, see BC_Type) |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Return data for diffusive or total flux b.c.
The flux can in general take the form
cross_section*(flux + sigma*(solution - ref_value))
index | Component index. |
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
bc_flux | Neumann flux (output). |
bc_sigma | Transition parameter (output). |
bc_ref_value | Reference value (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Return transition coefficient for flux b.c.
In assembly of system matrix one does not teed all data for total/diffusive flux b.c. This method therefore returns only the sigma coefficient.
index | Component index. |
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
bc_sigma | Transition parameter (output). |
Implemented in HeatTransferModel, and ConcentrationTransportModel.
|
pure virtual |
Read necessary data from input record.
Implemented in HeatTransferModel, and ConcentrationTransportModel.