182 {
return vconc[sbi]; }
Sorption model in immobile zone in case dual porosity is considered.
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
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
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.
int * get_row_4_el() override
Return global array of order of elements within parallel vector.
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...
void get_par_info(int *&el_4_loc, Distribution *&el_ds) override
Return array of indices of local elements and parallel distribution of elements.
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.