Flow123d
JS_before_hm-1804-gf2ad740aa
|
Go to the documentation of this file.
88 template<
unsigned int dim>
289 template<
unsigned int dim>
362 std::shared_ptr<DOFHandlerMultiDim>
dh_;
FEValues< 3 > fe_values_[3]
FESideValues objects for side flux calculating.
FiniteElement< 1 > * fe1_
void set_balance_object(std::shared_ptr< Balance > balance) override
MultiField< 3, FieldValue< 3 >::Scalar > conc_mobile
Calculated concentrations in the mobile zone.
Vec vcfl_flow_
Parallel vector for flow contribution to CFL condition.
ConcentrationTransportBase FactoryBaseType
void create_mass_matrix()
MultiField< 3, FieldValue< 3 >::Scalar > init_conc
Initial concentrations.
RegionSet read_boundary_list_item(Input::Record rec)
Override generic method in order to allow specification of the boundary conditions through the old bc...
static const Input::Type::Record & get_input_type()
SubstanceList & substances() override
Returns reference to the vector of substance names.
FETransportObjects feo_
Finite element objects.
unsigned int size() const
double transport_matrix_time
void update_after_reactions(bool) override
Not used in this class.
FiniteElement< 0 > * fe0_
Finite elements for the solution of the advection-diffusion equation.
double side_flux(const DHCellSide &cell_side)
Wrapper of following method, call side_flux with correct template parameter.
Class FEValues calculates finite element data on the actual cells such as shape function values,...
double calculate_side_flux(const DHCellSide &cell)
Calculate flux on side of given element specified by dimension.
Classes for storing substance data.
virtual ~ConvectionTransport()
FieldFEScalarVec conc_mobile_fe
Underlaying FieldFE for each substance of conc_mobile.
LongIdx * get_row_4_el() override
Return global array of order of elements within parallel vector.
unsigned int n_substances() override
Returns number of transported substances.
FEValues< 3 > & fe_values(unsigned int dim)
std::shared_ptr< OutputTime > output_stream_
double transport_bc_time
Time of the last update of the boundary condition terms.
bool is_mass_diag_changed
Flag indicates that porosity or cross_section changed during last time.
double ** cumulative_corr
void read_concentration_sources()
Side accessor allows to iterate over sides of DOF handler cell.
void conc_sources_bdr_conditions()
Assembles concentration sources for each substance and set boundary conditions. note: the source of c...
std::shared_ptr< Balance > balance() const
void alloc_transport_structs_mpi()
bool is_convection_matrix_scaled
const Input::Record input_rec
Record with input specification.
bool evaluate_time_constraint(double &time_constraint) override
static const int registrar
Registrar of class to factory.
void zero_time_step() override
Definitions of particular quadrature rules on simplices.
void set_initial_condition()
Quadrature & q(unsigned int dim)
Vec vcfl_source_
Parallel vector for source term contribution to CFL condition.
virtual void output_data() override
Write computed fields.
std::shared_ptr< DOFHandlerMultiDim > dh_
EquationOutput output_fields
Fields indended for output, i.e. all input fields plus those representing solution.
vector< unsigned int > subst_idx
List of indices used to call balance methods for a set of quantities.
BCMultiField< 3, FieldValue< 3 >::Scalar > bc_conc
The class for outputting data during time.
std::array< QGauss, 4 > array
FiniteElement< 3 > * fe3_
SubstanceList substances_
Transported substances.
Abstract class for the description of a general finite element on a reference simplex in dim dimensio...
Field< 3, FieldValue< 3 >::Scalar > subdomain
Vec get_component_vec(unsigned int sbi) override
Return PETSc vector with solution for sbi-th substance.
FieldFEScalarVec & get_p0_interpolation() override
Getter for P0 interpolation by FieldFE.
int LongIdx
Define type that represents indices of large arrays (elements, nodes, dofs etc.)
void make_transport_partitioning()
Coupling of a transport model with a reaction model by operator splitting.
TimeMark::Type target_mark_type
TimeMark type for time marks denoting end of every time interval where transport matrix remains const...
Class for representation of a vector of fields of the same physical quantity.
void update_solution() override
FiniteElement< 2 > * fe2_
const vector< unsigned int > & get_subst_idx() override
Return substance indices used in balance.
ConvectionTransport(Mesh &init_mesh, const Input::Record in_rec)
void get_par_info(LongIdx *&el_4_loc, Distribution *&el_ds) override
Return array of indices of local elements and parallel distribution of elements.
void set_target_time(double target_time) override
static const IT::Selection & get_output_selection()
void set_output_stream(std::shared_ptr< OutputTime > stream) override
Setter for output stream.
void alloc_transport_vectors()
VecScatter vconc_out_scatter
Class template representing a field with values dependent on: point, element, and region.
Base class for quadrature rules on simplices in arbitrary dimensions.
double cfl_max_step
Time step constraint coming from CFL condition.
void initialize() override
QGauss::array q_
Quadratures used in assembling methods.
vector< VectorMPI > corr_vec
FiniteElement< dim > * fe()
Field< 3, FieldValue< 3 >::Scalar > region_id
void transport_matrix_step_mpi(double time_step)
std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > FieldFEScalarVec
void compute_p0_interpolation() override
void create_transport_matrix_mpi()