144 std::shared_ptr<DOFHandlerMultiDim>
dh_;
272 {
return eq_data_->substances_.size(); }
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > FieldFEScalarVec
bool sources_changed_
Flag indicates that sources part of equation was changed during last time.
bool is_convection_matrix_scaled
Flag indicates the state of object.
void alloc_transport_structs_mpi(unsigned int lsize)
Vec * bcvcorr
Boundary condition correction vector.
VectorMPI cfl_source_
Parallel vector for source term contribution to CFL condition.
std::shared_ptr< Balance > balance_
object for calculation and writing the mass balance to file, shared with EquationBase.
VectorMPI cfl_flow_
Parallel vector for flow contribution to CFL condition.
unsigned int max_edg_sides
Maximal number of edge sides (evaluate from dim 1,2,3)
double transport_bc_time
Time of the last update of the boundary condition terms.
void set_time_governor(TimeGovernor *time)
bool is_mass_diag_changed
Flag indicates that porosity or cross_section changed during last time.
unsigned int n_substances()
Returns number of transported substances.
double transport_matrix_time
vector< VectorMPI > tm_diag
additions to PETSC transport matrix on the diagonal - from sources (for each substance)
Mat tm
PETSc transport matrix.
vector< VectorMPI > corr_vec
SubstanceList substances_
Transported substances.
vector< unsigned int > subst_idx
List of indices used to call balance methods for a set of quantities.
std::shared_ptr< DOFHandlerMultiDim > dh_
Field< 3, FieldValue< 3 >::Scalar > subdomain
MultiField< 3, FieldValue< 3 >::Scalar > init_conc
Initial concentrations.
Field< 3, FieldValue< 3 >::Scalar > region_id
FieldFEScalarVec conc_mobile_fe
Underlaying FieldFE for each substance of conc_mobile.
double side_flux(SidePoint &side_p, FEValues< 3 > &fe_side_values)
Calculate flux on given side point.
EquationOutput output_fields
Fields indended for output, i.e. all input fields plus those representing solution.
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_conc
MultiField< 3, FieldValue< 3 >::Scalar > conc_mobile
Calculated concentrations in the mobile zone.
ConcentrationTransportBase FactoryBaseType
void set_output_stream(std::shared_ptr< OutputTime > stream) override
Setter for output stream.
SubstanceList & substances() override
Returns reference to the vector of substance names.
static const IT::Selection & get_output_selection()
FieldFEScalarVec & get_p0_interpolation() override
Getter for P0 interpolation by FieldFE.
unsigned int n_substances() override
Returns number of transported substances.
VecScatter vconc_out_scatter
void initialize() override
void set_target_time(double target_time) override
void update_solution() override
GenericAssembly< InitCondAssemblyConvection > * init_cond_assembly_
void alloc_transport_structs_mpi()
std::shared_ptr< EqFields > eq_fields_
void zero_time_step() override
GenericAssembly< MassAssemblyConvection > * mass_assembly_
general assembly objects, hold assembly objects of appropriate dimension
void alloc_transport_vectors()
GenericAssembly< MatrixMpiAssemblyConvection > * matrix_mpi_assembly_
void update_after_reactions(bool) override
Not used in this class.
ConvectionTransport(Mesh &init_mesh, const Input::Record in_rec)
const Input::Record input_rec
Record with input specification.
virtual void output_data() override
Write computed fields.
Vec get_component_vec(unsigned int sbi) override
Return PETSc vector with solution for sbi-th substance.
std::shared_ptr< OutputTime > output_stream_
void set_balance_object(std::shared_ptr< Balance > balance) override
static const Input::Type::Record & get_input_type()
TimeMark::Type target_mark_type
TimeMark type for time marks denoting end of every time interval where transport matrix remains const...
void compute_p0_interpolation() override
GenericAssembly< ConcSourcesBdrAssemblyConvection > * conc_sources_bdr_assembly_
bool evaluate_time_constraint(double &time_constraint) override
double cfl_max_step
Time step constraint coming from CFL condition.
static const int registrar
Registrar of class to factory.
std::shared_ptr< EqData > eq_data_
const vector< unsigned int > & get_subst_idx() override
Return substance indices used in balance.
virtual ~ConvectionTransport()
std::shared_ptr< Balance > balance() const
double JxW(const unsigned int point_no)
Return the product of Jacobian determinant and the quadrature weight at given quadrature point.
arma::vec::fixed< spacedim > normal_vector(unsigned int point_no)
Returns the normal vector to a side at given quadrature point.
Class template representing a field with values dependent on: point, element, and region.
Generic class of assemblation.
Class for representation of a vector of fields of the same physical quantity.
The class for outputting data during time.
General point a+ side_begin_ + ccessor allow iterate over quadrature points of given side defined in ...
unsigned int size() const
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Field< 3, FieldValue< 3 >::VectorFixed > flow_flux
Flow flux, can be result of water flow model.
Coupling of a transport model with a reaction model by operator splitting.
void resize(unsigned int local_size)
Class FEValues calculates finite element data on the actual cells such as shape function values,...
unsigned int IntDim
A dimension index type.
Definitions of particular quadrature rules on simplices.
Classes for storing substance data.