|
Plugins
|
Discretization for the Convection-Diffusion Equation. More...
#include <convection_diffusion_base.h>
Inheritance diagram for ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >:Public Member Functions | |
| ConvectionDiffusionBase (const char *functions, const char *subsets) | |
| Constructor. | |
| virtual SmartPtr< CplUserData< MathVector< dim >, dim > > | gradient () |
| returns the export of the gradient of associated unknown function | |
| 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 | |
| void | set_diffusion (SmartPtr< CplUserData< MathMatrix< dim, dim >, dim > > user) |
| sets the diffusion tensor | |
| void | set_diffusion (number val) |
| sets the diffusion tensor | |
| void | set_velocity (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
| sets the velocity field | |
| void | set_velocity (const std::vector< number > &vVel) |
| sets the velocity field | |
| void | set_flux (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
| sets the flux | |
| void | set_flux (const std::vector< number > &vVel) |
| sets the flux | |
| void | set_reaction_rate (SmartPtr< CplUserData< number, dim > > user) |
| sets the reaction rate | |
| void | set_reaction_rate (number val) |
| sets the reaction rate | |
| void | set_reaction (SmartPtr< CplUserData< number, dim > > user) |
| sets the reaction | |
| void | set_reaction (number val) |
| sets the reaction | |
| void | set_source (SmartPtr< CplUserData< number, dim > > user) |
| sets the source / sink term | |
| void | set_source (number val) |
| sets the source / sink term | |
| void | set_vector_source (SmartPtr< CplUserData< MathVector< dim >, dim > > user) |
| sets the vector source term | |
| void | set_vector_source (const std::vector< number > &vVel) |
| sets the vector source term | |
| void | set_mass_scale (SmartPtr< CplUserData< number, dim > > user) |
| sets mass scale | |
| void | set_mass_scale (number val) |
| sets mass scale | |
| void | set_mass (SmartPtr< CplUserData< number, dim > > user) |
| sets mass | |
| void | set_mass (number val) |
| sets mass | |
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 ug::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[]) |
| TLeaf & | 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< typename TDomain > | |
| 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< typename TDomain > | |
| 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 ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | |
| TLeaf & | 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. | |
Static Public Attributes inherited from ug::IElemDisc< TDomain > | |
| static const int | dim |
Static Public Attributes inherited from ug::IElemAssembleFuncs< IElemDisc< TDomain >, TDomain > | |
| static const int | dim |
Static Public Attributes inherited from ug::IElemError< typename TDomain > | |
| static const int | dim |
Static Public Attributes inherited from ug::IElemDiscBase< typename TDomain > | |
| static const int | dim |
Static Public Attributes inherited from ug::IElemEstimatorFuncs< IElemDisc< TDomain >, TDomain > | |
| static const int | dim |
Private Types | |
| typedef IElemDisc< TDomain > | base_type |
| Base class type. | |
Private Member Functions | |
| virtual bool | requests_local_time_series () |
| returns if local time series is needed | |
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< typename TDomain >.
| void ug::ConvectionDiffusionPlugin::ConvectionDiffusionBase< TDomain >::set_diffusion | ( | number | val | ) |
sets the diffusion tensor
This method sets the Diffusion tensor used in computations. If no Tensor is set, a zero value is assumed.
References make_sp().
| 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 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.
| 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.
| 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.