Flow123d
3.9.0-72cb42cb8
|
#include <transport.h>
Classes | |
class | EqData |
class | EqFields |
Public Types | |
typedef ConcentrationTransportBase | FactoryBaseType |
Public Types inherited from ConcentrationTransportBase | |
typedef std::vector< std::shared_ptr< FieldFE< 3, FieldValue< 3 >::Scalar > > > | FieldFEScalarVec |
Public Member Functions | |
ConvectionTransport (Mesh &init_mesh, const Input::Record in_rec) | |
virtual | ~ConvectionTransport () |
void | initialize () override |
void | zero_time_step () override |
bool | evaluate_time_constraint (double &time_constraint) override |
void | update_solution () override |
void | compute_p0_interpolation () override |
void | update_after_reactions (bool) override |
Not used in this class. More... | |
void | set_target_time (double target_time) override |
void | set_balance_object (std::shared_ptr< Balance > balance) override |
const vector< unsigned int > & | get_subst_idx () override |
Return substance indices used in balance. More... | |
virtual void | output_data () override |
Write computed fields. More... | |
void | set_output_stream (std::shared_ptr< OutputTime > stream) override |
Setter for output stream. More... | |
FieldFEScalarVec & | get_p0_interpolation () override |
Getter for P0 interpolation by FieldFE. More... | |
Vec | get_component_vec (unsigned int sbi) override |
Return PETSc vector with solution for sbi-th substance. More... | |
unsigned int | n_substances () override |
Returns number of transported substances. More... | |
SubstanceList & | substances () override |
Returns reference to the vector of substance names. More... | |
Public Member Functions inherited from ConcentrationTransportBase | |
ConcentrationTransportBase (Mesh &init_mesh, const Input::Record in_rec) | |
Public Member Functions inherited from EquationBase | |
EquationBase () | |
EquationBase (Mesh &mesh, const Input::Record in_rec) | |
virtual | ~EquationBase () |
virtual void | choose_next_time () |
virtual void | set_time_upper_constraint (double dt, std::string message) |
virtual void | set_time_lower_constraint (double dt, std::string message) |
TimeGovernor & | time () |
virtual void | set_time_governor (TimeGovernor &time) |
double | planned_time () |
virtual double | solved_time () |
Mesh & | mesh () |
std::shared_ptr< Balance > | balance () const |
TimeMark::Type | mark_type () |
FieldSet & | eq_fieldset () |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
static const IT::Selection & | get_output_selection () |
Static Public Member Functions inherited from ConcentrationTransportBase | |
static Input::Type::Abstract & | get_input_type () |
Common specification of the input record for secondary equations. More... | |
Static Public Member Functions inherited from EquationBase | |
static Input::Type::Record & | record_template () |
Template Record with common keys for derived equations. More... | |
Private Member Functions | |
void | alloc_transport_vectors () |
void | alloc_transport_structs_mpi () |
Private Attributes | |
std::shared_ptr< EqFields > | eq_fields_ |
std::shared_ptr< EqData > | eq_data_ |
bool | is_src_term_scaled |
bool | is_bc_term_scaled |
TimeMark::Type | target_mark_type |
TimeMark type for time marks denoting end of every time interval where transport matrix remains constant. More... | |
double | cfl_max_step |
Time step constraint coming from CFL condition. More... | |
VecScatter | vconc_out_scatter |
Vec | vpmass_diag |
Vec * | vpconc |
Vec * | vcumulative_corr |
const Input::Record | input_rec |
Record with input specification. More... | |
std::shared_ptr< OutputTime > | output_stream_ |
GenericAssembly< MassAssemblyConvection > * | mass_assembly_ |
general assembly objects, hold assembly objects of appropriate dimension More... | |
GenericAssembly< InitCondAssemblyConvection > * | init_cond_assembly_ |
GenericAssembly< ConcSourcesBdrAssemblyConvection > * | conc_sources_bdr_assembly_ |
GenericAssembly< MatrixMpiAssemblyConvection > * | matrix_mpi_assembly_ |
Static Private Attributes | |
static const int | registrar |
Registrar of class to factory. More... | |
Friends | |
class | TransportOperatorSplitting |
Additional Inherited Members | |
Protected Attributes inherited from EquationBase | |
bool | equation_empty_ |
flag is true if only default constructor was called More... | |
Mesh * | mesh_ |
TimeGovernor * | time_ |
Input::Record | input_record_ |
FieldSet * | eq_fieldset_ |
std::shared_ptr< Balance > | balance_ |
object for calculation and writing the mass balance to file. More... | |
TODO:
Definition at line 86 of file transport.h.
Definition at line 185 of file transport.h.
ConvectionTransport::ConvectionTransport | ( | Mesh & | init_mesh, |
const Input::Record | in_rec | ||
) |
Constructor.
Definition at line 121 of file transport.cc.
|
virtual |
TODO: destructor
Definition at line 199 of file transport.cc.
|
private |
|
private |
|
inlineoverridevirtual |
Compute P0 interpolation of the solution (used reaction term). Empty - solution is already P0 interpolation.
Implements ConcentrationTransportBase.
Definition at line 221 of file transport.h.
|
overridevirtual |
Evaluates CFL condition. Assembles the transport matrix and vector (including sources, bc terms).
time_constraint | is the value CFL constraint (return parameter) |
Implements ConcentrationTransportBase.
Definition at line 319 of file transport.cc.
|
overridevirtual |
Return PETSc vector with solution for sbi-th substance.
Implements ConcentrationTransportBase.
Definition at line 192 of file transport.cc.
|
static |
Definition at line 74 of file transport.cc.
|
static |
|
overridevirtual |
Getter for P0 interpolation by FieldFE.
Getters.
Implements ConcentrationTransportBase.
Definition at line 515 of file transport.cc.
|
inlineoverridevirtual |
Return substance indices used in balance.
Implements ConcentrationTransportBase.
Definition at line 249 of file transport.h.
|
overridevirtual |
This method should initialize fields of the equation. All members (e.g. number of components) that are necessary for the field initialization must be set between construction and call of initialize. After this method the upper level coupling may set sharing of some fields between equations.
Reimplemented from EquationBase.
Definition at line 146 of file transport.cc.
|
inlineoverridevirtual |
Returns number of transported substances.
Implements ConcentrationTransportBase.
Definition at line 271 of file transport.h.
|
overridevirtual |
Write computed fields.
Reimplemented from EquationBase.
Definition at line 520 of file transport.cc.
|
overridevirtual |
Use Balance object from upstream equation (e.g. in various couplings) instead of own instance.
Implements ConcentrationTransportBase.
Definition at line 532 of file transport.cc.
|
inlineoverridevirtual |
Setter for output stream.
Implements ConcentrationTransportBase.
Definition at line 257 of file transport.h.
|
overridevirtual |
Set time interval which is considered as one time step by TransportOperatorSplitting. In particular the velocity field doesn't change over this interval.
Dependencies:
velocity, porosity -> matrix, source_vector matrix -> time_step
data_read_times -> time_step (not necessary if we won't stick to jump times) data -> source_vector time_step -> scaling
Implements ConcentrationTransportBase.
Definition at line 492 of file transport.cc.
|
inlineoverridevirtual |
Returns reference to the vector of substance names.
Implements ConcentrationTransportBase.
Definition at line 275 of file transport.h.
|
inlineoverridevirtual |
Not used in this class.
Implements ConcentrationTransportBase.
Definition at line 224 of file transport.h.
|
overridevirtual |
Calculates one time step of explicit transport.
Reimplemented from EquationBase.
Definition at line 388 of file transport.cc.
|
overridevirtual |
Initialize solution at zero time.
Reimplemented from EquationBase.
Definition at line 287 of file transport.cc.
|
friend |
Definition at line 327 of file transport.h.
|
private |
Time step constraint coming from CFL condition.
Definition at line 305 of file transport.h.
|
private |
Definition at line 324 of file transport.h.
|
private |
Definition at line 292 of file transport.h.
|
private |
Parameters of the equation, some are shared with other implementations since EqFields is derived from TransportBase::TransportEqFields
Definition at line 291 of file transport.h.
|
private |
Definition at line 323 of file transport.h.
|
private |
Record with input specification.
Definition at line 316 of file transport.h.
|
private |
Definition at line 300 of file transport.h.
|
private |
Flag indicates the state of object (transport matrix or source or boundary term). If false, the object is freshly assembled and not rescaled. If true, the object is scaled (not necessarily with the current time step).
Definition at line 300 of file transport.h.
|
private |
general assembly objects, hold assembly objects of appropriate dimension
Definition at line 322 of file transport.h.
|
private |
Definition at line 325 of file transport.h.
|
private |
Definition at line 318 of file transport.h.
|
staticprivate |
Registrar of class to factory.
Definition at line 286 of file transport.h.
|
private |
TimeMark type for time marks denoting end of every time interval where transport matrix remains constant.
Definition at line 304 of file transport.h.
|
private |
Definition at line 308 of file transport.h.
|
private |
Definition at line 313 of file transport.h.
|
private |
Definition at line 312 of file transport.h.
|
private |
Definition at line 309 of file transport.h.