EqVarT Class Reference

#include <eqvart.h>

Collaboration diagram for EqVarT:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 EqVarT (UpdateFlags up)
virtual ~EqVarT ()
void setFeValue (FEValues< DIM > *fe)
bool validFeValues ()
void setFaceValues (FEFaceValues< DIM > *face_values)
bool validFeFaceValues ()
std::vector< unsigned int > & getDofIndices ()
void addNeumannBoundary (unsigned boundary_value)
UpdateFlags getUpdateFlags ()
DoFHandler< DIM >
::active_cell_iterator & 
getCell ()
double getSolValue (Vector< double > &sol)
double getCoefSolValue (unsigned index, VecDouble &sol)
double getSolGradComponent (Vector< double > &sol, int component)
double getValueByCellIndex (const VecDouble &sol)
Tensor< 1, DIM > getSolGrad (VecDouble &sol)
const FEValues< DIM > & getFEValues ()
unsigned getQPoint ()
unsigned getQPointAtFace ()
double measure ()
double localNeumannBoundary (unsigned i)
double localEqVar (unsigned i, unsigned j)
double localRhs (unsigned i)
unsigned component (unsigned i)
unsigned component_face (unsigned i)
unsigned base_function (unsigned i)
unsigned base_element_mult (unsigned i)
bool changedCell (unsigned i, unsigned j)
const Point< DIM > & getPoint ()
double shape_value (unsigned i)
const Tensor< 1, DIM > & shape_grad (unsigned i)
double shape_value (unsigned i, unsigned component)
Tensor< 1, DIM > shape_grad (unsigned i, unsigned component)
double shape_div (unsigned i)
double JxW ()
double JFace ()
double JxWFace ()
FEFaceValues< DIM > & getFEFaceValues ()
const Point< DIM > & getPointAtFace ()
const Tensor< 1, DIM > & normal_vector ()
const Tensor< 1, DIM > & shape_grad_face (unsigned i)
double shape_value_face (unsigned i)
void changedCellEvent ()
void changedQPointEvent ()
void changedCellRHSEvent ()
void changedQPointRHSEvent ()
void changedQPointFaceEvent ()

Private Member Functions

void setCell (DoFHandler< DIM >::active_cell_iterator &cell)
void setQPoint (unsigned qpoint)

Private Attributes

bool m_validFeValues
bool m_validFeFaceValues
UpdateFlags m_upFlags
DoFHandler< DIM >
::active_cell_iterator * 
m_pCell
FEValues< DIM > * m_fev
FEFaceValues< DIM > * m_face_values
std::vector< unsigned int > m_dofIndices
unsigned m_qPoint
unsigned m_qPointFace

Friends

class EqVarTAccessor

Detailed Description

Definition at line 18 of file eqvart.h.


Constructor & Destructor Documentation

EqVarT::EqVarT ( UpdateFlags  up  )  [inline]

Definition at line 48 of file eqvart.h.

00048 {m_upFlags = up;m_fev=NULL;m_face_values=NULL;}

virtual EqVarT::~EqVarT (  )  [inline, virtual]

Definition at line 49 of file eqvart.h.

00049 {}


Member Function Documentation

void EqVarT::addNeumannBoundary ( unsigned  boundary_value  ) 
unsigned EqVarT::base_element_mult ( unsigned  i  )  [inline]

Definition at line 81 of file eqvart.h.

00081 {assert(validFeValues());return m_fev->get_fe().system_to_base_index(i).first.second;}

unsigned EqVarT::base_function ( unsigned  i  )  [inline]

Definition at line 80 of file eqvart.h.

00080 { assert(validFeValues());return m_fev->get_fe().system_to_component_index(i).second;}

bool EqVarT::changedCell ( unsigned  i,
unsigned  j 
) [inline]

Definition at line 84 of file eqvart.h.

00084 {return (i ==0 && j==0 && m_qPoint == 0);}

void EqVarT::changedCellEvent (  )  [inline]

Definition at line 106 of file eqvart.h.

00106 {} //Sempre que trocamos de celula.

void EqVarT::changedCellRHSEvent (  )  [inline]

Definition at line 108 of file eqvart.h.

00108 {changedCellEvent();} //Sempre que trocamos de celula ao construir RHS.

void EqVarT::changedQPointEvent (  )  [inline]

Definition at line 107 of file eqvart.h.

00107 {}    //Sempre que se troca um ponto de integracao durante a montagem da matriz global..  

void EqVarT::changedQPointFaceEvent (  )  [inline]

Definition at line 112 of file eqvart.h.

00112 {} //Ponto da face trocou durante adicao de condicao de Neumman. 

void EqVarT::changedQPointRHSEvent (  )  [inline]

Definition at line 110 of file eqvart.h.

00110 {}  //Ponto de integracao trocou durante a montagem do RHS

unsigned EqVarT::component ( unsigned  i  ) 

Definition at line 125 of file eqvart.cpp.

00126 {
00127   //Verifica se component nao esta sendo chamado dentro de addNeummanCondition.
00128   assert(validFeValues());
00129   return m_fev->get_fe().system_to_component_index(i).first;
00130 }

unsigned EqVarT::component_face ( unsigned  i  )  [inline]

Definition at line 78 of file eqvart.h.

00078 {assert(m_face_values);return m_face_values->get_fe().system_to_component_index(i).first;}

DoFHandler<DIM>::active_cell_iterator& EqVarT::getCell (  )  [inline]

Definition at line 58 of file eqvart.h.

00058 {return *m_pCell;} 

double EqVarT::getCoefSolValue ( unsigned  index,
VecDouble sol 
)

Definition at line 15 of file eqvart.cpp.

00016 {
00017   return sol(m_dofIndices[index]);
00018 }

std::vector<unsigned int>& EqVarT::getDofIndices (  )  [inline]

Definition at line 55 of file eqvart.h.

00055 {return m_dofIndices;}

FEFaceValues<DIM>& EqVarT::getFEFaceValues (  )  [inline]

Definition at line 98 of file eqvart.h.

00098 {assert(validFeFaceValues());return *m_face_values;}

const FEValues<DIM>& EqVarT::getFEValues (  )  [inline]

Definition at line 64 of file eqvart.h.

00064 {assert(validFeValues());return *m_fev;} 

const Point<DIM>& EqVarT::getPoint (  )  [inline]

Definition at line 87 of file eqvart.h.

00087 {assert(validFeValues());return m_fev->quadrature_point(m_qPoint);}

const Point<DIM>& EqVarT::getPointAtFace (  )  [inline]

Definition at line 100 of file eqvart.h.

00100 {assert(validFeFaceValues());return m_face_values->quadrature_point(m_qPointFace);}

unsigned EqVarT::getQPoint (  )  [inline]

Definition at line 65 of file eqvart.h.

00065 {assert(validFeValues());return m_qPoint;}

unsigned EqVarT::getQPointAtFace (  )  [inline]

Definition at line 66 of file eqvart.h.

00066 {assert(validFeFaceValues());return m_qPointFace;}

Tensor< 1, DIM > EqVarT::getSolGrad ( VecDouble sol  ) 

Definition at line 33 of file eqvart.cpp.

00034 {
00035   unsigned i;
00036   unsigned n_dofs_per_cell = m_fev->get_fe().dofs_per_cell;
00037   Tensor<1,DIM> result;
00038   result.clear();
00039   for (i=0;i<n_dofs_per_cell;i++)
00040   {
00041     result+=sol(m_dofIndices[i])*m_fev->shape_grad(i,m_qPoint);
00042   }
00043   return result;
00044 }

double EqVarT::getSolGradComponent ( Vector< double > &  sol,
int  component 
)

Definition at line 20 of file eqvart.cpp.

00021 {
00022   unsigned i;
00023   unsigned n_dofs_per_cell = m_fev->get_fe().dofs_per_cell;
00024   double result=0.0;
00025   for (i=0;i<n_dofs_per_cell;i++)
00026   {
00027     result+=sol(m_dofIndices[i])*m_fev->shape_grad(i,m_qPoint)[component];
00028   }
00029   return result;
00030 }

double EqVarT::getSolValue ( Vector< double > &  sol  ) 

Definition at line 3 of file eqvart.cpp.

00004 {
00005   unsigned i;
00006   unsigned n_dofs_per_cell = m_fev->get_fe().dofs_per_cell;
00007   double result=0.0;
00008   for (i=0;i<n_dofs_per_cell;i++)
00009   {
00010     result+=sol(m_dofIndices[i])*m_fev->shape_value(i,m_qPoint);
00011   }
00012   return result;
00013 }

UpdateFlags EqVarT::getUpdateFlags (  )  [inline]

Definition at line 57 of file eqvart.h.

00057 {return m_upFlags;}

double EqVarT::getValueByCellIndex ( const VecDouble sol  ) 

Definition at line 52 of file eqvart.cpp.

00053 {
00054   return sol(getCell()->index());
00055 }  

double EqVarT::JFace (  )  [inline]

Definition at line 96 of file eqvart.h.

00096 {assert(validFeFaceValues());return m_face_values->JxW(m_qPointFace);}

double EqVarT::JxW (  )  [inline]

Definition at line 93 of file eqvart.h.

00093 {assert(validFeValues());return m_fev->JxW(m_qPoint);}

double EqVarT::JxWFace (  )  [inline]

Definition at line 97 of file eqvart.h.

00097 {assert(validFeFaceValues());return m_face_values->JxW(m_qPointFace);}

double EqVarT::localEqVar ( unsigned  i,
unsigned  j 
)

Definition at line 102 of file eqvart.cpp.

00103 {
00104   printf("EqvarT::localEqVar = This function shoud never be called. The childrens must override this functions\nAbortting...\n");
00105   abort();
00106   return NAN;
00107 }

double EqVarT::localNeumannBoundary ( unsigned  i  ) 

Definition at line 86 of file eqvart.cpp.

00087 {
00088   i=0;
00089   assert(0);   //Se chamado nessa classe, retorne erro imediatamente.
00090   return NAN;
00091 }

double EqVarT::localRhs ( unsigned  i  ) 

Definition at line 109 of file eqvart.cpp.

00110 {
00111   printf("EqvarT::localRhs = This function shoud never be called. The childrens must override this functions\nAbortting...\n");
00112   abort();
00113   return NAN;
00114 
00115 }

double EqVarT::measure (  )  [inline]

Definition at line 68 of file eqvart.h.

00068 {return getCell()->measure();}

const Tensor<1,DIM>& EqVarT::normal_vector (  )  [inline]

Definition at line 101 of file eqvart.h.

00101 {assert(validFeFaceValues());return m_face_values->normal_vector(m_qPointFace);}

void EqVarT::setCell ( DoFHandler< DIM >::active_cell_iterator &  cell  )  [inline, private]

Definition at line 41 of file eqvart.h.

00041 {m_pCell = &cell;}

void EqVarT::setFaceValues ( FEFaceValues< DIM > *  face_values  ) 

Definition at line 67 of file eqvart.cpp.

00068 {
00069   m_face_values = face_values;
00070 }

void EqVarT::setFeValue ( FEValues< DIM > *  fe  ) 

Definition at line 72 of file eqvart.cpp.

00073 {
00074  m_fev = fe;
00075 }

void EqVarT::setQPoint ( unsigned  qpoint  )  [inline, private]

Definition at line 42 of file eqvart.h.

00042 {m_qPoint = qpoint;}

double EqVarT::shape_div ( unsigned  i  ) 

Definition at line 140 of file eqvart.cpp.

00141 {
00142   assert(validFeValues());
00143   assert(!m_fev->get_fe().is_primitive());
00144   return  m_fev->shape_grad_component(i,getQPoint(),0)[0] + m_fev->shape_grad_component(i,getQPoint(),1)[1];
00145 }

Tensor<1,DIM> EqVarT::shape_grad ( unsigned  i,
unsigned  component 
) [inline]

Definition at line 91 of file eqvart.h.

00091 {assert(validFeValues());return m_fev->shape_grad_component(i,getQPoint(),component);}

const Tensor<1,DIM>& EqVarT::shape_grad ( unsigned  i  )  [inline]

Definition at line 89 of file eqvart.h.

00089 {assert(validFeValues());return m_fev->shape_grad(i,m_qPoint);}

const Tensor<1,DIM>& EqVarT::shape_grad_face ( unsigned  i  )  [inline]

Definition at line 102 of file eqvart.h.

00102 {assert(validFeFaceValues());return m_face_values->shape_grad(i,m_qPointFace);}

double EqVarT::shape_value ( unsigned  i,
unsigned  component 
) [inline]

Definition at line 90 of file eqvart.h.

00090 {assert(validFeValues());return m_fev->shape_value_component(i,getQPoint(),component);}

double EqVarT::shape_value ( unsigned  i  )  [inline]

Definition at line 88 of file eqvart.h.

00088 {assert(validFeValues());return m_fev->shape_value(i,m_qPoint);}

double EqVarT::shape_value_face ( unsigned  i  )  [inline]

Definition at line 103 of file eqvart.h.

00103 {assert(validFeFaceValues());return m_face_values->shape_value(i,m_qPointFace);}

bool EqVarT::validFeFaceValues (  )  [inline]

Definition at line 53 of file eqvart.h.

00053 {return m_validFeFaceValues;}

bool EqVarT::validFeValues (  )  [inline]

Definition at line 51 of file eqvart.h.

00051 {return m_validFeValues;}


Friends And Related Function Documentation

friend class EqVarTAccessor [friend]

Definition at line 20 of file eqvart.h.


Member Data Documentation

std::vector<unsigned int> EqVarT::m_dofIndices [private]

Definition at line 35 of file eqvart.h.

FEFaceValues<DIM>* EqVarT::m_face_values [private]

Definition at line 34 of file eqvart.h.

FEValues<DIM>* EqVarT::m_fev [private]

Definition at line 33 of file eqvart.h.

DoFHandler<DIM>::active_cell_iterator* EqVarT::m_pCell [private]

Definition at line 32 of file eqvart.h.

unsigned EqVarT::m_qPoint [private]

Definition at line 36 of file eqvart.h.

unsigned EqVarT::m_qPointFace [private]

Definition at line 37 of file eqvart.h.

UpdateFlags EqVarT::m_upFlags [private]

Definition at line 31 of file eqvart.h.

Definition at line 24 of file eqvart.h.

bool EqVarT::m_validFeValues [private]

Definition at line 23 of file eqvart.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Sun Apr 8 23:13:03 2012 for CO2INJECTION by  doxygen 1.6.3