Public Member Functions | Protected Types | Protected Attributes | List of all members
oomph::ProjectableElementBase Class Referenceabstract

Template-free Base class for projectable elements. More...

#include <projection.h>

Inheritance diagram for oomph::ProjectableElementBase:
oomph::ProjectableElement< ELEMENT >

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...
 

Detailed Description

Template-free Base class for projectable elements.

Definition at line 54 of file projection.h.

Member Enumeration Documentation

◆ Projection_Type

Enumerated collection to specify which projection problem is to be solved.

Enumerator
Coordinate 
Lagrangian 
Value 

Definition at line 59 of file projection.h.

Constructor & Destructor Documentation

◆ ProjectableElementBase()

oomph::ProjectableElementBase::ProjectableElementBase ( )
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.

◆ ~ProjectableElementBase()

virtual oomph::ProjectableElementBase::~ProjectableElementBase ( )
inlinevirtual

Virtual destructor.

Definition at line 123 of file projection.h.

Member Function Documentation

◆ data_values_of_field()

virtual Vector<std::pair<Data*, unsigned> > oomph::ProjectableElementBase::data_values_of_field ( const unsigned &  fld)
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.

◆ get_field()

virtual double oomph::ProjectableElementBase::get_field ( const unsigned &  time,
const unsigned &  fld,
const Vector< double > &  s 
)
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().

◆ jacobian_and_shape_of_field()

virtual double oomph::ProjectableElementBase::jacobian_and_shape_of_field ( const unsigned &  fld,
const Vector< double > &  s,
Shape &  psi 
)
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().

◆ local_equation()

virtual int oomph::ProjectableElementBase::local_equation ( const unsigned &  fld,
const unsigned &  ivalue 
)
pure virtual

Return local equation numbers associated with value ivalue of field fld within the element.

Referenced by oomph::ProjectableElement< ELEMENT >::residual_for_projection().

◆ nfields_for_projection()

virtual unsigned oomph::ProjectableElementBase::nfields_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)

◆ nhistory_values_for_coordinate_projection()

virtual unsigned oomph::ProjectableElementBase::nhistory_values_for_coordinate_projection ( )
pure virtual

Number of history values to be stored when projecting the history values of the nodal coordinates (includes current value!)

◆ nhistory_values_for_projection()

virtual unsigned oomph::ProjectableElementBase::nhistory_values_for_projection ( const unsigned &  fld)
pure virtual

Number of history values to be stored for fld-th field (includes current value!)

◆ nvalue_of_field()

virtual unsigned oomph::ProjectableElementBase::nvalue_of_field ( const unsigned &  fld)
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().

Member Data Documentation

◆ Backup_external_geometric_data

bool oomph::ProjectableElementBase::Backup_external_geometric_data
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().

◆ Backup_external_interaction_data

bool oomph::ProjectableElementBase::Backup_external_interaction_data
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().

◆ Backup_ninteraction

unsigned oomph::ProjectableElementBase::Backup_ninteraction
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().

◆ Do_projection

bool oomph::ProjectableElementBase::Do_projection
protected

◆ Projected_coordinate

unsigned oomph::ProjectableElementBase::Projected_coordinate
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().

◆ Projected_field

unsigned oomph::ProjectableElementBase::Projected_field
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().

◆ Projected_lagrangian

unsigned oomph::ProjectableElementBase::Projected_lagrangian
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().

◆ Projection_type

Projection_Type oomph::ProjectableElementBase::Projection_type
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().

◆ Time_level_for_projection

unsigned oomph::ProjectableElementBase::Time_level_for_projection
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().


The documentation for this class was generated from the following file: