Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
concepts::gfem::GfemUCQuad Class Reference

#include <gfemUCQuad.h>

Collaboration diagram for concepts::gfem::GfemUCQuad:
Collaboration graph
[legend]

List of all members.

Public Types

enum  EvalMode { EVAL_ON_MICRO = 0, EVAL_ON_MACRO }

Public Member Functions

void activateFormula (const concepts::ElementFormula< Cmplx > *formula)
const GfemDofIteratorbegin () const
int getFomulaId (const ElementFormula< Cmplx > *formula_adr)
Real getMacroShape (int i_macro, Real x) const
Real2d getMacroShapeD_unit (int i_macro1, int i_macro2, Real x, Real y) const
const ElementWithCell< Real > * getMicroElem (int i_quad) const
MapReal2d getMicroJacobian (int i_quad) const
const CmplxgetMicroShape (int i_micro, int i_quad) const
CmplxgetMicroShape (int i_ucfun, int i_quad)
Cmplx2dgetMicroShapeD (int i_ucfun, int i_quad)
const Cmplx2dgetMicroShapeD (int i_ucfun, int i_quad) const
const int * getPMacro ()
 an array of two elements which are the maximal polinomial degrees of the Macro shapefunctions.
const int * getPMax ()
 an array of two elements which are the maximal polinomial degrees for macro shapefunctions or special overlap functions.
const CmplxgetQPpart (int iMic) const
const UnitcellgetUC () const
Real2d getUCPoint (int i_quad, int repx=0, int repy=0) const
const RealgetWeight (int i_quad) const
 GfemUCQuad (const Unitcell &uc, int p_macro[2])
int num_shape () const
 alias to numLDof()
int numLDof () const
int numMacro () const
int numMacroX () const
int numMacroY () const
int numMicro () const
int numMonomX ()
int numMonomY ()
int numQuadPoints () const
int numUCFun () const
Real powi (Real x, int power)
void recomputeShapefunctions ()
void registerFormula (const RCP< const concepts::ElementFormula< Cmplx > > &formula, EvalMode mode=EVAL_ON_MICRO)
 adds the formula if it didn't exist, in all cases the formula is activated.
void setCurFomula (int id)
void unsetCurFomula ()
virtual ~GfemUCQuad ()
Cmplx getUCBF_Id (int px, int py, int iMicro1, int iMicro2) const
CmplxgetUCBF_Id (int px, int py, int iMicro1, int iMicro2)
Cmplx getUCBF_Lap (int px, int py, int iMicro1, int iMicro2, int i_diff1, int i_diff2, int i_comp) const
CmplxgetUCBF_Lap (int px, int py, int iMicro1, int iMicro2, int i_diff1, int i_diff2, int i_comp)

Protected Member Functions

void addFormula (const RCP< const concepts::ElementFormula< Cmplx > > &formula, EvalMode mode)
void clear ()
void fillUCBF (const concepts::ElementFormula< Cmplx > &formula)
CmplxgetUCBF (Cmplx *vals, int px, int py, int iMicro1, int iMicro2)
Cmplx *& getUCBF_LapType (int i_diff1, int i_diff2, int i_comp)
void initialise ()

Private Member Functions

 GfemUCQuad (const GfemUCQuad &other)
GfemUCQuadoperator= (const GfemUCQuad &other)

Private Attributes

Realabscissas_x
Realabscissas_y
EvalMode cur_mode
std::vector< RCP< const
ElementFormula< Cmplx > > > 
formulas
GfemDofIterator it_begin
const ElementWithCell< Real > ** micro_elems
std::vector< EvalModemodes
int n_micro
int n_shape_macro_x
int n_shape_macro_y
int n_ucBF
 = uc.size()
int n_ucfun
int nquad
GfemOverlapCondition overC
int p_macro [2]
int p_max [2]
const Unitcelluc
MapReal2duc_jacobian
Cmplxuc_shape
Cmplx2duc_shape_D
CmplxucBF_id
std::vector< Cmplx * > ucBF_ids
Cmplx ** ucBF_lap
std::vector< Cmplx ** > ucBF_laps
Realweights

Static Private Attributes

static const int N_LAP_COMP = 8

Detailed Description

Definition at line 27 of file gfemUCQuad.h.


Member Enumeration Documentation

Enumerator:
EVAL_ON_MICRO 
EVAL_ON_MACRO 

Definition at line 87 of file gfemUCQuad.h.


Constructor & Destructor Documentation

concepts::gfem::GfemUCQuad::GfemUCQuad ( const Unitcell uc,
int  p_macro[2] 
)
virtual concepts::gfem::GfemUCQuad::~GfemUCQuad ( ) [virtual]
concepts::gfem::GfemUCQuad::GfemUCQuad ( const GfemUCQuad other) [private]

Member Function Documentation

void concepts::gfem::GfemUCQuad::activateFormula ( const concepts::ElementFormula< Cmplx > *  formula) [inline]
Precondition:
the formula has been registered before

Definition at line 78 of file gfemUCQuad.h.

Here is the call graph for this function:

void concepts::gfem::GfemUCQuad::addFormula ( const RCP< const concepts::ElementFormula< Cmplx > > &  formula,
EvalMode  mode 
) [inline, protected]

Definition at line 298 of file gfemUCQuad.h.

Here is the call graph for this function:

const GfemDofIterator& concepts::gfem::GfemUCQuad::begin ( ) const [inline]

Definition at line 155 of file gfemUCQuad.h.

void concepts::gfem::GfemUCQuad::clear ( ) [protected]
void concepts::gfem::GfemUCQuad::fillUCBF ( const concepts::ElementFormula< Cmplx > &  formula) [protected]
int concepts::gfem::GfemUCQuad::getFomulaId ( const ElementFormula< Cmplx > *  formula_adr) [inline]

Definition at line 52 of file gfemUCQuad.h.

Real concepts::gfem::GfemUCQuad::getMacroShape ( int  i_macro,
Real  x 
) const [inline]

Definition at line 183 of file gfemUCQuad.h.

Here is the call graph for this function:

Real2d concepts::gfem::GfemUCQuad::getMacroShapeD_unit ( int  i_macro1,
int  i_macro2,
Real  x,
Real  y 
) const [inline]

Definition at line 190 of file gfemUCQuad.h.

Here is the call graph for this function:

const ElementWithCell<Real>* concepts::gfem::GfemUCQuad::getMicroElem ( int  i_quad) const [inline]

Definition at line 170 of file gfemUCQuad.h.

MapReal2d concepts::gfem::GfemUCQuad::getMicroJacobian ( int  i_quad) const [inline]

Definition at line 174 of file gfemUCQuad.h.

const Cmplx& concepts::gfem::GfemUCQuad::getMicroShape ( int  i_micro,
int  i_quad 
) const [inline]

Definition at line 179 of file gfemUCQuad.h.

Cmplx& concepts::gfem::GfemUCQuad::getMicroShape ( int  i_ucfun,
int  i_quad 
) [inline]

Definition at line 212 of file gfemUCQuad.h.

Here is the call graph for this function:

const Cmplx2d& concepts::gfem::GfemUCQuad::getMicroShapeD ( int  i_ucfun,
int  i_quad 
) const [inline]

Definition at line 218 of file gfemUCQuad.h.

Cmplx2d& concepts::gfem::GfemUCQuad::getMicroShapeD ( int  i_ucfun,
int  i_quad 
) [inline]

Definition at line 222 of file gfemUCQuad.h.

Here is the call graph for this function:

const int* concepts::gfem::GfemUCQuad::getPMacro ( ) [inline]

an array of two elements which are the maximal polinomial degrees of the Macro shapefunctions.

Definition at line 147 of file gfemUCQuad.h.

const int* concepts::gfem::GfemUCQuad::getPMax ( ) [inline]

an array of two elements which are the maximal polinomial degrees for macro shapefunctions or special overlap functions.

See also:
GfemOverlapCondition

Definition at line 140 of file gfemUCQuad.h.

const Cmplx* concepts::gfem::GfemUCQuad::getQPpart ( int  iMic) const [inline]

Definition at line 127 of file gfemUCQuad.h.

Here is the call graph for this function:

const Unitcell& concepts::gfem::GfemUCQuad::getUC ( ) const [inline]

Definition at line 123 of file gfemUCQuad.h.

Cmplx& concepts::gfem::GfemUCQuad::getUCBF ( Cmplx vals,
int  px,
int  py,
int  iMicro1,
int  iMicro2 
) [inline, protected]

Definition at line 284 of file gfemUCQuad.h.

Here is the call graph for this function:

Cmplx concepts::gfem::GfemUCQuad::getUCBF_Id ( int  px,
int  py,
int  iMicro1,
int  iMicro2 
) const [inline]
  • px monomial degree in 0..2*getPXmax()
  • py monomial degree in 0..2*getPYmax()
  • iMicro1, iMicro2 index of micro functions in the BF
    Returns:
    value of unit cell quadrature

Definition at line 248 of file gfemUCQuad.h.

Cmplx& concepts::gfem::GfemUCQuad::getUCBF_Id ( int  px,
int  py,
int  iMicro1,
int  iMicro2 
) [inline]
  • px monomial degree in 0..2*getPXmax()
  • py monomial degree in 0..2*getPYmax()
  • iMicro1, iMicro2 index of micro functions in the BF
    Returns:
    value of unit cell quadrature

Definition at line 252 of file gfemUCQuad.h.

Here is the call graph for this function:

Cmplx concepts::gfem::GfemUCQuad::getUCBF_Lap ( int  px,
int  py,
int  iMicro1,
int  iMicro2,
int  i_diff1,
int  i_diff2,
int  i_comp 
) const [inline]
  • px monomial degree in 0..2*getPXmax()
  • py monomial degree in 0..2*getPYmax()
  • iMicro1, iMicro2 index of micro functions in the BF
    Returns:
    value of unit cell quadrature

Definition at line 264 of file gfemUCQuad.h.

Cmplx& concepts::gfem::GfemUCQuad::getUCBF_Lap ( int  px,
int  py,
int  iMicro1,
int  iMicro2,
int  i_diff1,
int  i_diff2,
int  i_comp 
) [inline]
  • px monomial degree in 0..2*getPXmax()
  • py monomial degree in 0..2*getPYmax()
  • iMicro1, iMicro2 index of micro functions in the BF
    Returns:
    value of unit cell quadrature

Definition at line 271 of file gfemUCQuad.h.

Here is the call graph for this function:

Cmplx*& concepts::gfem::GfemUCQuad::getUCBF_LapType ( int  i_diff1,
int  i_diff2,
int  i_comp 
) [inline, protected]

Definition at line 292 of file gfemUCQuad.h.

Real2d concepts::gfem::GfemUCQuad::getUCPoint ( int  i_quad,
int  repx = 0,
int  repy = 0 
) const [inline]

Definition at line 164 of file gfemUCQuad.h.

Here is the call graph for this function:

const Real& concepts::gfem::GfemUCQuad::getWeight ( int  i_quad) const [inline]

Definition at line 229 of file gfemUCQuad.h.

void concepts::gfem::GfemUCQuad::initialise ( ) [protected]
int concepts::gfem::GfemUCQuad::num_shape ( ) const [inline]

alias to numLDof()

Definition at line 132 of file gfemUCQuad.h.

Here is the call graph for this function:

int concepts::gfem::GfemUCQuad::numLDof ( ) const [inline]

Definition at line 151 of file gfemUCQuad.h.

Here is the call graph for this function:

int concepts::gfem::GfemUCQuad::numMacro ( ) const [inline]

Definition at line 103 of file gfemUCQuad.h.

Here is the call graph for this function:

int concepts::gfem::GfemUCQuad::numMacroX ( ) const [inline]

Definition at line 107 of file gfemUCQuad.h.

int concepts::gfem::GfemUCQuad::numMacroY ( ) const [inline]

Definition at line 111 of file gfemUCQuad.h.

int concepts::gfem::GfemUCQuad::numMicro ( ) const [inline]

Definition at line 115 of file gfemUCQuad.h.

int concepts::gfem::GfemUCQuad::numMonomX ( ) [inline]

Definition at line 233 of file gfemUCQuad.h.

Here is the call graph for this function:

int concepts::gfem::GfemUCQuad::numMonomY ( ) [inline]

Definition at line 237 of file gfemUCQuad.h.

Here is the call graph for this function:

int concepts::gfem::GfemUCQuad::numQuadPoints ( ) const [inline]

Definition at line 160 of file gfemUCQuad.h.

int concepts::gfem::GfemUCQuad::numUCFun ( ) const [inline]

Definition at line 119 of file gfemUCQuad.h.

GfemUCQuad& concepts::gfem::GfemUCQuad::operator= ( const GfemUCQuad other) [private]
Real concepts::gfem::GfemUCQuad::powi ( Real  x,
int  power 
) [inline]

Definition at line 204 of file gfemUCQuad.h.

void concepts::gfem::GfemUCQuad::recomputeShapefunctions ( ) [inline]

Definition at line 38 of file gfemUCQuad.h.

Here is the call graph for this function:

void concepts::gfem::GfemUCQuad::registerFormula ( const RCP< const concepts::ElementFormula< Cmplx > > &  formula,
EvalMode  mode = EVAL_ON_MICRO 
) [inline]

adds the formula if it didn't exist, in all cases the formula is activated.

Definition at line 90 of file gfemUCQuad.h.

Here is the call graph for this function:

void concepts::gfem::GfemUCQuad::setCurFomula ( int  id) [inline]

Definition at line 66 of file gfemUCQuad.h.

void concepts::gfem::GfemUCQuad::unsetCurFomula ( ) [inline]

Definition at line 61 of file gfemUCQuad.h.


Member Data Documentation

Definition at line 343 of file gfemUCQuad.h.

Definition at line 344 of file gfemUCQuad.h.

Definition at line 337 of file gfemUCQuad.h.

std::vector< RCP<const ElementFormula<Cmplx> > > concepts::gfem::GfemUCQuad::formulas [private]

Definition at line 329 of file gfemUCQuad.h.

Definition at line 327 of file gfemUCQuad.h.

Definition at line 347 of file gfemUCQuad.h.

std::vector< EvalMode > concepts::gfem::GfemUCQuad::modes [private]

Definition at line 330 of file gfemUCQuad.h.

const int concepts::gfem::GfemUCQuad::N_LAP_COMP = 8 [static, private]

Definition at line 352 of file gfemUCQuad.h.

Definition at line 334 of file gfemUCQuad.h.

Definition at line 340 of file gfemUCQuad.h.

Definition at line 341 of file gfemUCQuad.h.

= uc.size()

Definition at line 336 of file gfemUCQuad.h.

Definition at line 335 of file gfemUCQuad.h.

Definition at line 339 of file gfemUCQuad.h.

Definition at line 326 of file gfemUCQuad.h.

Definition at line 333 of file gfemUCQuad.h.

Definition at line 332 of file gfemUCQuad.h.

Definition at line 324 of file gfemUCQuad.h.

Definition at line 346 of file gfemUCQuad.h.

Definition at line 349 of file gfemUCQuad.h.

Definition at line 350 of file gfemUCQuad.h.

Definition at line 353 of file gfemUCQuad.h.

Definition at line 356 of file gfemUCQuad.h.

Definition at line 354 of file gfemUCQuad.h.

std::vector<Cmplx**> concepts::gfem::GfemUCQuad::ucBF_laps [private]

Definition at line 357 of file gfemUCQuad.h.

Definition at line 345 of file gfemUCQuad.h.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)