Template-free Base class for projectable elements. More...
#include <projection.h>
Public Member Functions | |
ProjectableElementBase () | |
Constructor: Initialise data so that we don't project but solve the "normal" equations associated with the element. More... | |
virtual | ~ProjectableElementBase () |
Virtual destructor. More... | |
virtual Vector< std::pair< Data *, unsigned > > | data_values_of_field (const unsigned &fld)=0 |
Pure virtual function in which the element writer must specify the values associated with field fld. The information is returned in a vector of pairs which comprise the Data object and the value within it, that correspond to field fld. E.g. in Taylor Hood elements the fld-th velocities are stored at the fld-th value of the nodes; the pressures (the DIM-th field) are the DIM-th values at the vertex nodes etc. More... | |
virtual unsigned | nfields_for_projection ()=0 |
Number of fields of the problem, so e.g. for 2D Navier Stokes this would be 3 (for the two velocities and one pressure) More... | |
virtual unsigned | nhistory_values_for_projection (const unsigned &fld)=0 |
Number of history values to be stored for fld-th field (includes current value!) More... | |
virtual unsigned | nhistory_values_for_coordinate_projection ()=0 |
Number of history values to be stored when projecting the history values of the nodal coordinates (includes current value!) More... | |
virtual unsigned | nvalue_of_field (const unsigned &fld)=0 |
Return number of values (pinned or not) associated with field fld within the element. This must correspond to the number of shape functions returned in jacobian_and_shape_of_field(...). More... | |
virtual int | local_equation (const unsigned &fld, const unsigned &ivalue)=0 |
Return local equation numbers associated with value ivalue of field fld within the element. More... | |
virtual double | jacobian_and_shape_of_field (const unsigned &fld, const Vector< double > &s, Shape &psi)=0 |
Return Jacobian of mapping and the shape functions associated with field fld. The number of shape functions must match the number of values specified in nvalue_of_field(...). For Lagrange-type interpolations the shape functinos are simply the "normal" nodal shape functions; if the element contains internal Data that is not associated with shape functions, simply set the corresonding shape function to 1. More... | |
virtual double | get_field (const unsigned &time, const unsigned &fld, const Vector< double > &s)=0 |
Return the fld-th field at local coordinates s at time-level time (time=0: current value; time>0: history values) More... | |
Protected Types | |
enum | Projection_Type { Coordinate , Lagrangian , Value } |
Enumerated collection to specify which projection problem is to be solved. More... | |
Protected Attributes | |
unsigned | Projected_field |
Field that is currently being projected. More... | |
unsigned | Time_level_for_projection |
Time level we are projecting (0=current values; >0: history values) More... | |
unsigned | Projected_coordinate |
When projecting the history values of the nodal coordinates, this is the coordinate we're projecting. More... | |
unsigned | Projected_lagrangian |
When projecting the Lagrangain coordinates indicate which coordiante is to be projected. More... | |
Projection_Type | Projection_type |
Variable to indicate if we're projecting the history values of the nodal coordinates (Coordinate) the values themselves (Value), or the Lagrangian coordinates in Solid Mechanics problems (Lagrangian) More... | |
bool | Do_projection |
Bool to know if we do projection or not. If false (the default) we solve the element's "real" equations rather than the projection equations. More... | |
unsigned | Backup_ninteraction |
Store number of "external" interactions that were assigned to the element before doing the projection. More... | |
bool | Backup_external_geometric_data |
Remember if the element includes external geometric data when used in non-projection mode (this is temporarily disabled during the projection) More... | |
bool | Backup_external_interaction_data |
Remember if the element includes external data when used in non-projection mode (this is temporarily disabled during the projection) More... | |
Template-free Base class for projectable elements.
Definition at line 54 of file projection.h.
|
protected |
Enumerated collection to specify which projection problem is to be solved.
Enumerator | |
---|---|
Coordinate | |
Lagrangian | |
Value |
Definition at line 59 of file projection.h.
|
inline |
Constructor: Initialise data so that we don't project but solve the "normal" equations associated with the element.
Definition at line 110 of file projection.h.
|
inlinevirtual |
Virtual destructor.
Definition at line 123 of file projection.h.
|
pure virtual |
Pure virtual function in which the element writer must specify the values associated with field fld. The information is returned in a vector of pairs which comprise the Data object and the value within it, that correspond to field fld. E.g. in Taylor Hood elements the fld-th velocities are stored at the fld-th value of the nodes; the pressures (the DIM-th field) are the DIM-th values at the vertex nodes etc.
|
pure virtual |
Return the fld-th field at local coordinates s at time-level time (time=0: current value; time>0: history values)
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
pure virtual |
Return Jacobian of mapping and the shape functions associated with field fld. The number of shape functions must match the number of values specified in nvalue_of_field(...). For Lagrange-type interpolations the shape functinos are simply the "normal" nodal shape functions; if the element contains internal Data that is not associated with shape functions, simply set the corresonding shape function to 1.
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
pure virtual |
Return local equation numbers associated with value ivalue of field fld within the element.
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
pure virtual |
Number of fields of the problem, so e.g. for 2D Navier Stokes this would be 3 (for the two velocities and one pressure)
|
pure virtual |
Number of history values to be stored when projecting the history values of the nodal coordinates (includes current value!)
|
pure virtual |
Number of history values to be stored for fld-th field (includes current value!)
|
pure virtual |
Return number of values (pinned or not) associated with field fld within the element. This must correspond to the number of shape functions returned in jacobian_and_shape_of_field(...).
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
protected |
Remember if the element includes external geometric data when used in non-projection mode (this is temporarily disabled during the projection)
Definition at line 98 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), and oomph::ProjectableElement< ELEMENT >::enable_projection().
|
protected |
Remember if the element includes external data when used in non-projection mode (this is temporarily disabled during the projection)
Definition at line 104 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), and oomph::ProjectableElement< ELEMENT >::enable_projection().
|
protected |
Store number of "external" interactions that were assigned to the element before doing the projection.
Definition at line 93 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), and oomph::ProjectableElement< ELEMENT >::enable_projection().
|
protected |
Bool to know if we do projection or not. If false (the default) we solve the element's "real" equations rather than the projection equations.
Definition at line 88 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), oomph::ProjectableElement< ELEMENT >::enable_projection(), oomph::ProjectableElement< ELEMENT >::fill_in_contribution_to_jacobian(), oomph::ProjectableElement< ELEMENT >::fill_in_contribution_to_residuals(), and oomph::ProjectableElement< ELEMENT >::zeta_nodal().
|
protected |
When projecting the history values of the nodal coordinates, this is the coordinate we're projecting.
Definition at line 74 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::projected_coordinate(), and oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
protected |
Field that is currently being projected.
Definition at line 67 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::projected_field(), and oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
protected |
When projecting the Lagrangain coordinates indicate which coordiante is to be projected.
Definition at line 78 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::projected_lagrangian_coordinate(), and oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
protected |
Variable to indicate if we're projecting the history values of the nodal coordinates (Coordinate) the values themselves (Value), or the Lagrangian coordinates in Solid Mechanics problems (Lagrangian)
Definition at line 83 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection(), oomph::ProjectableElement< ELEMENT >::set_project_coordinates(), oomph::ProjectableElement< ELEMENT >::set_project_lagrangian(), and oomph::ProjectableElement< ELEMENT >::set_project_values().
|
protected |
Time level we are projecting (0=current values; >0: history values)
Definition at line 70 of file projection.h.
Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection(), and oomph::ProjectableElement< ELEMENT >::time_level_for_projection().