Flow123d
JS_before_hm-2-g912b55d
|
#include <heat_model.hh>
Classes | |
class | ModelEqData |
Public Types | |
typedef AdvectionProcessBase | FactoryBaseType |
Public Types inherited from AdvectionDiffusionModel | |
enum | Abstract_bc_types { abc_inflow, abc_dirichlet, abc_total_flux, abc_diffusive_flux } |
Public Member Functions | |
HeatTransferModel (Mesh &mesh, const Input::Record in_rec) | |
void | init_from_input (const Input::Record &) override |
Read necessary data from input record. More... | |
void | compute_mass_matrix_coefficient (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &mm_coef) override |
void | compute_retardation_coefficient (const std::vector< arma::vec3 > &, const ElementAccessor< 3 > &, std::vector< std::vector< double > > &) override |
void | compute_advection_diffusion_coefficients (const std::vector< arma::vec3 > &point_list, const std::vector< arma::vec3 > &velocity, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< arma::vec3 > > &ad_coef, std::vector< std::vector< arma::mat33 > > &dif_coef) override |
void | compute_init_cond (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &init_values) override |
void | get_bc_type (const ElementAccessor< 3 > &ele_acc, arma::uvec &bc_types) override |
void | get_flux_bc_data (unsigned int index, const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_flux, std::vector< double > &bc_sigma, std::vector< double > &bc_ref_value) override |
Return data for diffusive or total flux b.c. More... | |
void | get_flux_bc_sigma (unsigned int index, const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< double > &bc_sigma) override |
Return transition coefficient for flux b.c. More... | |
void | compute_source_coefficients (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_conc, std::vector< std::vector< double > > &sources_density, std::vector< std::vector< double > > &sources_sigma) override |
void | compute_sources_sigma (const std::vector< arma::vec3 > &point_list, const ElementAccessor< 3 > &ele_acc, std::vector< std::vector< double > > &sources_sigma) override |
~HeatTransferModel () override | |
void | set_velocity_field (const MH_DofHandler &dh) override |
Updates the velocity field which determines some coefficients of the transport equation. More... | |
unsigned int | n_substances () |
Returns number of transported substances. More... | |
SubstanceList & | substances () |
Returns reference to the vector of substance names. More... | |
Public Member Functions inherited from AdvectionDiffusionModel | |
virtual | ~AdvectionDiffusionModel () |
Destructor. More... | |
Public Member Functions inherited from AdvectionProcessBase | |
AdvectionProcessBase (Mesh &mesh, const Input::Record in_rec) | |
Public Member Functions inherited from EquationBase | |
EquationBase () | |
EquationBase (Mesh &mesh, const Input::Record in_rec) | |
virtual void | initialize () |
virtual void | zero_time_step () |
virtual | ~EquationBase () |
virtual void | update_solution () |
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 () |
double | solved_time () |
Mesh & | mesh () |
TimeMark::Type | mark_type () |
FieldSet & | data () |
virtual void | get_solution_vector (FMT_UNUSED double *&vector, FMT_UNUSED unsigned int &size) |
virtual void | get_parallel_solution_vector (FMT_UNUSED Vec &vector) |
Protected Member Functions | |
virtual ModelEqData & | data ()=0 |
Derived class should implement getter for ModelEqData instance. More... | |
void | output_data () override |
Write computed fields. More... | |
std::shared_ptr< OutputTime > & | output_stream () |
virtual void | calculate_cumulative_balance ()=0 |
Static Protected Member Functions | |
static IT::Record | get_input_type (const string &implementation, const string &description) |
Protected Attributes | |
bool | flux_changed |
Indicator of change in advection vector field. More... | |
SubstanceList | substances_ |
Transported substances. More... | |
const MH_DofHandler * | mh_dh |
vector< unsigned int > | subst_idx |
List of indices used to call balance methods for a set of quantities. More... | |
std::shared_ptr< OutputTime > | output_stream_ |
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_data_ |
std::shared_ptr< Balance > | balance_ |
object for calculation and writing the mass balance to file. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from AdvectionProcessBase | |
static Input::Type::Abstract & | get_input_type () |
Common specification of the input record for secondary equations. More... | |
This method takes sequential PETSc vector of side velocities and update transport matrix. The ordering is same as ordering of sides in the mesh. We just keep the pointer, but do not destroy the object.
TODO: We should pass whole velocity field object (description of base functions and dof numbering) and vector.
Definition at line 97 of file heat_model.hh.
Definition at line 172 of file heat_model.hh.
HeatTransferModel::HeatTransferModel | ( | Mesh & | mesh, |
const Input::Record | in_rec | ||
) |
Definition at line 251 of file heat_model.cc.
|
override |
Definition at line 441 of file heat_model.cc.
|
protectedpure virtual |
|
overridevirtual |
Compute coefficients of stiffness matrix.
point_list | Points at which to evaluate. |
velocity | Velocity field (input). Temporary solution before we can pass data from other equations. |
ele_acc | Element accessor. |
ad_coef | Coefficients of advection (output). |
dif_coef | Coefficients of diffusion (output). |
Implements AdvectionDiffusionModel.
Definition at line 299 of file heat_model.cc.
|
overridevirtual |
Compute initial conditions.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
init_values | Vector of intial values (output). |
Implements AdvectionDiffusionModel.
Definition at line 339 of file heat_model.cc.
|
overridevirtual |
Compute coefficients of mass matrix.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
mm_coef | Coefficient vector (output). |
Implements AdvectionDiffusionModel.
Definition at line 276 of file heat_model.cc.
|
inlineoverridevirtual |
Compute retardation coefficients due to sorption.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
ret_coef | Coefficient vector (output). |
Implements AdvectionDiffusionModel.
Definition at line 183 of file heat_model.hh.
|
overridevirtual |
Compute coefficients of volume sources.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
sources_conc | Source concentrations (output). |
sources_density | Source densities (output). |
sources_sigma | Source sigmas (output). |
Implements AdvectionDiffusionModel.
Definition at line 380 of file heat_model.cc.
|
overridevirtual |
Compute coefficients of volume sources.
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
sources_sigma | Source sigmas (output). |
Implements AdvectionDiffusionModel.
Definition at line 418 of file heat_model.cc.
|
protectedpure virtual |
Derived class should implement getter for ModelEqData instance.
|
overridevirtual |
Return types of boundary conditions for each solution component.
ele_acc | Element accessor. |
bc_types | Vector of bc. types (output, see BC_Type) |
Implements AdvectionDiffusionModel.
Definition at line 347 of file heat_model.cc.
|
overridevirtual |
Return data for diffusive or total flux b.c.
The flux can in general take the form
cross_section*(flux + sigma*(solution - ref_value))
index | Component index. |
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
bc_flux | Neumann flux (output). |
bc_sigma | Transition parameter (output). |
bc_ref_value | Reference value (output). |
Implements AdvectionDiffusionModel.
Definition at line 356 of file heat_model.cc.
|
overridevirtual |
Return transition coefficient for flux b.c.
In assembly of system matrix one does not teed all data for total/diffusive flux b.c. This method therefore returns only the sigma coefficient.
index | Component index. |
point_list | Points at which to evaluate. |
ele_acc | Element accessor. |
bc_sigma | Transition parameter (output). |
Implements AdvectionDiffusionModel.
Definition at line 371 of file heat_model.cc.
|
staticprotected |
Create input type that can be passed to the derived class.
implementation | String characterizing the numerical method, e.g. DG, FEM, FVM. |
description | Comment used to describe the record key. |
Definition at line 226 of file heat_model.cc.
|
inlineoverridevirtual |
Read necessary data from input record.
Implements AdvectionDiffusionModel.
Definition at line 177 of file heat_model.hh.
|
inline |
Returns number of transported substances.
Definition at line 238 of file heat_model.hh.
|
overrideprotectedvirtual |
Write computed fields.
Reimplemented from EquationBase.
Definition at line 270 of file heat_model.cc.
|
inlineprotected |
Definition at line 261 of file heat_model.hh.
|
inlineoverridevirtual |
Updates the velocity field which determines some coefficients of the transport equation.
dh | mixed hybrid dof handler |
(So far it does not work since the flow module returns a vector of zeros.)
Implements AdvectionProcessBase.
Definition at line 231 of file heat_model.hh.
|
inline |
Returns reference to the vector of substance names.
Definition at line 242 of file heat_model.hh.
|
protected |
Indicator of change in advection vector field.
Definition at line 267 of file heat_model.hh.
|
protected |
Temporary solution how to pass velocity field form the flow model. TODO: introduce FieldDiscrete -containing true DOFHandler and data vector and pass such object together with other data. Possibly make more general set_data method, allowing setting data given by name. needs support from EqDataBase.
Definition at line 277 of file heat_model.hh.
|
protected |
Definition at line 282 of file heat_model.hh.
|
protected |
List of indices used to call balance methods for a set of quantities.
Definition at line 280 of file heat_model.hh.
|
protected |
Transported substances.
Definition at line 270 of file heat_model.hh.