182 {
return vconc[sbi]; }
Sorption model in immobile zone in case dual porosity is considered.
int IdxInt
Define integers that are indices into large arrays (elements, nodes, dofs etc.)
Abstract base class for equation clasess.
std::vector< VectorSeqDouble > out_conc
bool is_mass_diag_changed
Flag indicates that porosity or cross_section changed during last time.
void update_solution() override
const vector< unsigned int > & get_subst_idx() override
Return substance indices used in balance.
double transport_matrix_time
void get_par_info(IdxInt *&el_4_loc, Distribution *&el_ds) override
Return array of indices of local elements and parallel distribution of elements.
const Vec & get_solution(unsigned int sbi) override
Return PETSc vector with solution for sbi-th substance.
void alloc_transport_vectors()
unsigned int n_substances() override
Returns number of transported substances.
MultiField< 3, FieldValue< 3 >::Scalar > conc_mobile
Calculated concentrations in the mobile zone.
Class template representing a field with values dependent on: point, element, and region...
void create_mass_matrix()
void set_velocity_field(const MH_DofHandler &dh) override
Pass velocity from flow to transport.
void initialize() override
std::shared_ptr< OutputTime > output_stream_
TimeMark::Type target_mark_type
TimeMark type for time marks denoting end of every time interval where transport matrix remains const...
void set_initial_condition()
double transport_bc_time
Time of the last update of the boundary condition terms.
void set_boundary_conditions()
Coupling of a transport model with a reaction model by operator splitting.
void transport_matrix_step_mpi(double time_step)
EquationOutput output_fields
Fields indended for output, i.e. all input fields plus those representing solution.
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_conc
void set_balance_object(std::shared_ptr< Balance > balance) override
double ** conc
Concentrations for phase, substance, element.
virtual ~ConvectionTransport()
MultiField< 3, FieldValue< 3 >::Scalar > init_conc
Initial concentrations.
void zero_time_step() override
unsigned int size() const
void output_vector_gather()
const Input::Record input_rec
Record with input specification.
SubstanceList & substances() override
Returns reference to the vector of substance names.
const MH_DofHandler * mh_dh
static const Input::Type::Record & get_input_type()
std::shared_ptr< OutputTime > output_stream() override
void calculate_concentration_matrix() override
Calculate the array of concentrations per element (for reactions).
ConvectionTransport(Mesh &init_mesh, const Input::Record in_rec)
static const int registrar
Registrar of class to factory.
SubstanceList substances_
Transported substances.
void update_after_reactions(bool solution_changed) override
Perform changes to transport solution after reaction step.
static const IT::Selection & get_output_selection()
double ** get_concentration_matrix() override
Getter for array of concentrations per element.
The class for outputting data during time.
vector< unsigned int > subst_idx
List of indices used to call balance methods for a set of quantities.
Vec * vconc
Concentration vectors for mobile phase.
void read_concentration_sources()
Field< 3, FieldValue< 3 >::Integer > region_id
void create_transport_matrix_mpi()
void alloc_transport_structs_mpi()
bool is_convection_matrix_scaled
IdxInt * get_row_4_el() override
Return global array of order of elements within parallel vector.
void set_output_stream(std::shared_ptr< OutputTime > stream) override
Setter for output stream.
void compute_concentration_sources()
Assembles concentration sources for each substance. note: the source of concentration is multiplied b...
bool evaluate_time_constraint(double &time_constraint) override
VecScatter vconc_out_scatter
Vec vcfl_flow_
Parallel vector for flow contribution to CFL condition.
void set_target_time(double target_time) override
ConcentrationTransportBase FactoryBaseType
virtual void output_data() override
Write computed fields.
Vec vcfl_source_
Parallel vector for source term contribution to CFL condition.
double ** cumulative_corr
RegionSet read_boundary_list_item(Input::Record rec)
Override generic method in order to allow specification of the boundary conditions through the old bc...
Class for representation of a vector of fields of the same physical quantity.
Field< 3, FieldValue< 3 >::Integer > subdomain
void make_transport_partitioning()
double cfl_max_step
Time step constraint coming from CFL condition.