Plugins
|
Discretization for the Convection-Diffusion Equation. More...
#include <convection_diffusion_base.h>
Public Member Functions | |
ConvectionDiffusionBase (const char *functions, const char *subsets) | |
Constructor. More... | |
virtual SmartPtr< CplUserData< MathVector< dim >, dim > > | gradient () |
returns the export of the gradient of associated unknown function More... | |
void | set_reaction_explicit (number val) |
void | set_reaction_explicit (SmartPtr< CplUserData< number, dim > > user) |
void | set_reaction_rate_explicit (number val) |
void | set_reaction_rate_explicit (SmartPtr< CplUserData< number, dim > > user) |
void | set_source_explicit (number val) |
void | set_source_explicit (SmartPtr< CplUserData< number, dim > > user) |
virtual SmartPtr< CplUserData< number, dim > > | value () |
returns the export of the value of associated unknown function More... | |
void | set_diffusion (SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > user) |
sets the diffusion tensor More... | |
void | set_diffusion (number val) |
sets the diffusion tensor More... | |
void | set_velocity (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
sets the velocity field More... | |
void | set_velocity (const std::vector< number > &vVel) |
sets the velocity field More... | |
void | set_flux (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
sets the flux More... | |
void | set_flux (const std::vector< number > &vVel) |
sets the flux More... | |
void | set_reaction_rate (SmartPtr< CplUserData< number, dim > > user) |
sets the reaction rate More... | |
void | set_reaction_rate (number val) |
sets the reaction rate More... | |
void | set_reaction (SmartPtr< CplUserData< number, dim > > user) |
sets the reaction More... | |
void | set_reaction (number val) |
sets the reaction More... | |
void | set_source (SmartPtr< CplUserData< number, dim > > user) |
sets the source / sink term More... | |
void | set_source (number val) |
sets the source / sink term More... | |
void | set_vector_source (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
sets the vector source term More... | |
void | set_vector_source (const std::vector< number > &vVel) |
sets the vector source term More... | |
void | set_mass_scale (SmartPtr< CplUserData< number, dim > > user) |
sets mass scale More... | |
void | set_mass_scale (number val) |
sets mass scale More... | |
void | set_mass (SmartPtr< CplUserData< number, dim > > user) |
sets mass More... | |
void | set_mass (number val) |
sets mass More... | |
Public Member Functions inherited from ug::IElemDisc< TDomain > | |
void | add_elem_modifier (SmartPtr< IElemDiscModifier< TDomain > > elemModifier) |
std::vector< SmartPtr< IElemDiscModifier< TDomain > > > & | get_elem_modifier () |
IElemDisc (const char *functions, const char *subsets) | |
IElemDisc (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) | |
Public Member Functions inherited from IElemAssembleFuncs< IElemDisc< TDomain >, TDomain > | |
virtual void | add_def_A_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | add_def_A_expl_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | add_def_M_elem (LocalVector &d, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | add_jac_A_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | add_jac_M_elem (LocalMatrix &J, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
IElemDisc< TDomain > & | asLeaf () |
void | check_roid (ReferenceObjectID roid, int discType) |
void | do_add_def_A_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_add_def_A_expl_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_add_def_M_elem (LocalVector &d, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_add_jac_A_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_add_jac_M_elem (LocalMatrix &J, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_add_rhs_elem (LocalVector &rhs, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_fsh_elem_loop () |
void | do_fsh_timestep (const number time, VectorProxyBase *u, size_t algebra_id) |
void | do_fsh_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_prep_elem (LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[]) |
void | do_prep_elem_loop (const ReferenceObjectID roid, const int si) |
void | do_prep_timestep (number future_time, const number time, VectorProxyBase *u, size_t algebra_id) |
void | do_prep_timestep_elem (const number time, LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | fsh_elem_loop () |
virtual void | fsh_timestep (number time, VectorProxyBase *u) |
virtual void | fsh_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
IElemAssembleFuncs () | |
virtual void | post_assemble_loop () |
virtual void | prep_assemble_loop () |
virtual void | prep_elem (const LocalVector &u, GridObject *elem, const ReferenceObjectID roid, const MathVector< dim > vCornerCoords[]) |
virtual void | prep_elem_loop (const ReferenceObjectID roid, const int si) |
virtual void | prep_timestep (number future_time, number time, VectorProxyBase *u) |
virtual void | prep_timestep_elem (const number time, const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | set_roid (ReferenceObjectID id, int discType) |
virtual | ~IElemAssembleFuncs () |
Public Member Functions inherited from ug::IElemError< class > | |
IElemError (const char *functions, const char *subsets) | |
IElemError (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) | |
Public Member Functions inherited from ug::IElemDiscBase< class > | |
SmartPtr< ApproximationSpace< TDomain > > | approx_space () |
ConstSmartPtr< ApproximationSpace< TDomain > > | approx_space () const |
void | check_setup (bool bNonRegularGrid) |
void | clear_imports () |
SmartPtr< TDomain > | domain () |
ConstSmartPtr< TDomain > | domain () const |
const FunctionGroup & | function_group () const |
ConstSmartPtr< FunctionPattern > | function_pattern () const |
IDataImport< dim > & | get_import (size_t i) |
IElemDiscBase (const char *functions="", const char *subsets="") | |
IElemDiscBase (const std::vector< std::string > &vFct, const std::vector< std::string > &vSubset) | |
bool | is_time_dependent () const |
bool | local_time_series_needed () |
const LocalVectorTimeSeries * | local_time_solutions () const |
const FunctionIndexMapping & | map () const |
number | mass_scale () const |
number | mass_scale () const |
number | mass_scale (const size_t timePoint) const |
number | mass_scale (const size_t timePoint) const |
const std::vector< number > & | mass_scales () const |
const std::vector< number > & | mass_scales () const |
size_t | num_fct () const |
size_t | num_imports () const |
size_t | num_subsets () const |
virtual void | prepare_setting (const std::vector< LFEID > &vLfeID, bool bNonRegularGrid)=0 |
void | register_import (IDataImport< dim > &Imp) |
void | set_approximation_space (SmartPtr< ApproximationSpace< TDomain > > approxSpace) |
void | set_functions (const std::string &functions) |
void | set_functions (const std::vector< std::string > &functions) |
void | set_stationary () |
void | set_stationary (bool bStationaryForced=true) |
void | set_subsets (const std::string &subsets) |
void | set_subsets (const std::vector< std::string > &subsets) |
void | set_time_dependent (LocalVectorTimeSeries &locTimeSeries, const std::vector< number > &vScaleMass, const std::vector< number > &vScaleStiff) |
void | set_time_independent () |
void | set_time_point (const size_t timePoint) |
number | stiff_scale () const |
number | stiff_scale () const |
number | stiff_scale (const size_t timePoint) const |
number | stiff_scale (const size_t timePoint) const |
const std::vector< number > & | stiff_scales () const |
const std::vector< number > & | stiff_scales () const |
TDomain::subset_handler_type & | subset_handler () |
const TDomain::subset_handler_type & | subset_handler () const |
const std::vector< std::string > & | symb_fcts () const |
const std::vector< std::string > & | symb_subsets () const |
number | time () const |
size_t | time_point () const |
virtual int | type () const |
virtual bool | use_hanging () const |
virtual | ~IElemDiscBase () |
Public Member Functions inherited from IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | |
IElemDisc< TDomain > & | asLeaf () |
void | check_roid (ReferenceObjectID roid, int discType) |
virtual void | compute_err_est_A_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
virtual void | compute_err_est_M_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
virtual void | compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
void | do_compute_err_est_A_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
void | do_compute_err_est_M_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
void | do_compute_err_est_rhs_elem (GridObject *elem, const MathVector< dim > vCornerCoords[], const number &scale) |
void | do_fsh_err_est_elem_loop () |
void | do_prep_err_est_elem (LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
void | do_prep_err_est_elem_loop (const ReferenceObjectID roid, const int si) |
virtual SmartPtr< IErrEstData< TDomain > > | err_est_data () |
bool | err_est_enabled () const |
virtual void | fsh_err_est_elem_loop () |
IElemEstimatorFuncs () | |
virtual void | prep_err_est_elem (const LocalVector &u, GridObject *elem, const MathVector< dim > vCornerCoords[]) |
virtual void | prep_err_est_elem_loop (const ReferenceObjectID roid, const int si) |
void | set_error_estimator (SmartPtr< IErrEstData< TDomain > > ee) |
void | set_roid (ReferenceObjectID id, int discType) |
virtual | ~IElemEstimatorFuncs () |
Static Public Attributes | |
static const int | dim = base_type::dim |
World dimension. More... | |
Static Public Attributes inherited from ug::IElemDisc< TDomain > | |
static const int | dim |
Static Public Attributes inherited from IElemAssembleFuncs< IElemDisc< TDomain >, TDomain > | |
static const int | dim |
Static Public Attributes inherited from ug::IElemError< class > | |
static const int | dim |
Static Public Attributes inherited from ug::IElemDiscBase< class > | |
static const int | dim |
Static Public Attributes inherited from IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | |
static const int | dim |
Private Types | |
typedef IElemDisc< TDomain > | base_type |
Base class type. More... | |
Private Member Functions | |
virtual bool | requests_local_time_series () |
returns if local time series is needed More... | |
Discretization for the Convection-Diffusion Equation.
This class implements the IElemDisc interface to provide element local assemblings for the convection diffusion equation. The Equation has the form
\[ \partial_t (m_1 c + m_2) - \nabla \cdot \left ( D \nabla c - \vec{v} c - \vec{F} \right ) + r_1 \cdot c + r_2 = f + \nabla \cdot \vec{f}_2 \]
with
TDomain | Domain |
|
private |
Base class type.
typedef SmartPtr<CplUserData<MathVector<dim>, dim> > ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::GradExport |
typedef SmartPtr<CplUserData<number, dim> > ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::NumberExport |
ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::ConvectionDiffusionBase | ( | const char * | functions, |
const char * | subsets | ||
) |
|
virtual |
returns the export of the gradient of associated unknown function
|
protected |
|
inlineprivatevirtual |
returns if local time series is needed
Reimplemented from ug::IElemDiscBase< class >.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_diffusion | ( | number | val | ) |
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_diffusion | ( | SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > | user | ) |
sets the diffusion tensor
This method sets the Diffusion tensor used in computations. If no Tensor is set, a zero value is assumed.
Referenced by ug::Richards::RichardsElemDisc< TDomain >::set_flux_data().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_flux | ( | const std::vector< number > & | vVel | ) |
sets the flux
This method sets the Flux. If no field is provided a zero value is assumed.
References dim, and ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_flux().
Referenced by ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_flux().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_flux | ( | SmartPtr< CplUserData< MathVector< dim >, dim > > | user | ) |
sets the flux
This method sets the Flux. If no field is provided a zero value is assumed.
Referenced by ug::Richards::RichardsElemDisc< TDomain >::set_flux_data().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_mass | ( | number | val | ) |
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_mass | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
sets mass
This method sets the mass value. The default value is 0.0.
Referenced by ug::Richards::RichardsElemDisc< TDomain >::set_storage_data().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_mass_scale | ( | number | val | ) |
sets mass scale
This method sets the mass scale value. The default value is 1.0.
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_mass_scale | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
sets mass scale
This method sets the mass scale value. The default value is 1.0.
Referenced by ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::ConvectionDiffusionBase(), and ug::Richards::RichardsElemDisc< TDomain >::set_storage_data().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction | ( | number | val | ) |
sets the reaction
This method sets the Reaction. A zero value is assumed as default.
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
sets the reaction
This method sets the Reaction. A zero value is assumed as default.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_explicit | ( | number | val | ) |
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_explicit | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_rate | ( | number | val | ) |
sets the reaction rate
This method sets the Reaction Rate. A zero value is assumed as default.
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_rate | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
sets the reaction rate
This method sets the Reaction Rate. A zero value is assumed as default.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_rate_explicit | ( | number | val | ) |
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_reaction_rate_explicit | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_source | ( | number | val | ) |
sets the source / sink term
This method sets the source/sink value. A zero value is assumed as default.
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_source | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
sets the source / sink term
This method sets the source/sink value. A zero value is assumed as default.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_source_explicit | ( | number | val | ) |
References make_sp().
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_source_explicit | ( | SmartPtr< CplUserData< number, dim > > | user | ) |
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_vector_source | ( | const std::vector< number > & | vVel | ) |
sets the vector source term
This method sets the divergence of the source as an effect of an external field. A zero value is assumed as default, thus this term is ignored then.
References dim.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_vector_source | ( | SmartPtr< CplUserData< MathVector< dim >, dim > > | user | ) |
sets the vector source term
This method sets the divergence of the source as an effect of an external field. A zero value is assumed as default, thus this term is ignored then.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_velocity | ( | const std::vector< number > & | vVel | ) |
sets the velocity field
This method sets the Velocity field. If no field is provided a zero value is assumed.
References dim.
void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_velocity | ( | SmartPtr< CplUserData< MathVector< dim >, dim > > | user | ) |
sets the velocity field
This method sets the Velocity field. If no field is provided a zero value is assumed.
|
virtual |
returns the export of the value of associated unknown function
|
static |
World dimension.
|
protected |
Export for the gradient of concentration.
|
protected |
Export for the concentration.
|
protected |
Data import for Diffusion.
|
protected |
Data import for the Flux.
|
protected |
Data import for the mass scale.
|
protected |
Data import for the mass scale.
|
protected |
Data import for the reaction term.
|
protected |
Data import for the reaction term explicit.
|
protected |
Data import for the reaction term.
|
protected |
Data import for the reaction_rate term explicit.
|
protected |
Data import for the right-hand side (volume)
|
protected |
Data import for the source term explicit.
|
protected |
Data import for the right-hand side (vector)
|
protected |
Data import for the Velocity field.