40     namespace MultiRegions
 
   57             ExpList(In,DeclareCoeffPhysArrays)
 
   74             (*m_exp).push_back(Point);
 
  102             const bool                                 DeclareCoeffPhysArrays)
 
  107             int i, j, id, elmtid=0;
 
  108             map<int,int> EdgeDone;
 
  109             map<int,int> NormalSet;
 
  116             for(i = 0; i < bndCond.num_elements(); ++i)
 
  120                     for(j = 0; j < bndConstraint[i]->GetExpSize(); ++j)
 
  122                         PointGeom = bndConstraint[i]->GetExp(0)->GetGeom()->GetVertex(0);
 
  125                         EdgeDone[PointGeom->GetVid()] = elmtid;
 
  127                         Point->SetElmtId(elmtid++);
 
  128                         (*m_exp).push_back(Point);
 
  134             for(i = 0; i < locexp.size(); ++i)
 
  136                 for(j = 0; j < 2; ++j)
 
  139                     PointGeom = (exp->GetGeom1D())->GetVertex(j);
 
  140                     id = PointGeom->GetVid();
 
  142                     if(EdgeDone.count(
id)==0)
 
  145                         EdgeDone[id] = elmtid;
 
  152                         Point->SetElmtId(elmtid++);
 
  153                         (*m_exp).push_back(Point);
 
  192             if(DeclareCoeffPhysArrays)
 
  211             for(i = 0; i < 
m_exp->size(); ++i)
 
  215                 m_offset_elmt_id[i] = i;
 
  216                 m_ncoeffs += (*m_exp)[i]->GetNcoeffs();
 
  217                 m_npoints += (*m_exp)[i]->GetTotPoints();
 
  236             int i,j,k,e_npoints,offset;
 
  240             int coordim = (*m_exp)[0]->GetGeom()->GetCoordim();
 
  242             ASSERTL1(normals.num_elements() >= coordim,
 
  243                      "Output vector does not have sufficient dimensions to " 
  247             for(i = 0; i < 
m_exp->size(); ++i)
 
  255                 locnormals = loc_elmt->GetVertexNormal(loc_exp->GetLeftAdjacentElementVertex());
 
  261                 for(j = 0; j < e_npoints; ++j)
 
  265                     for(k = 0; k < coordim; ++k)
 
  267                         normals[k][offset] = locnormals[k][0];
 
  288             for(
int j = 0; j < Fwd.num_elements(); ++j)
 
virtual void v_Upwind(const Array< OneD, const NekDouble > &Vn, const Array< OneD, const NekDouble > &Fwd, const Array< OneD, const NekDouble > &Bwd, Array< OneD, NekDouble > &Upwind)
 
virtual void v_GetNormals(Array< OneD, Array< OneD, NekDouble > > &normals)
 
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool. 
 
std::map< int, vector< PeriodicEntity > > PeriodicMap
 
NekOptimize::GlobalOptParamSharedPtr m_globalOptParam
 
Expansion1DSharedPtr GetLeftAdjacentElementExp() const 
 
Array< OneD, NekDouble > m_phys
The global expansion evaluated at the quadrature points. 
 
Array< OneD, NekDouble > m_coeffs
Concatenation of all local expansion coefficients. 
 
int GetExpSize(void)
This function returns the number of elements in the expansion. 
 
boost::shared_ptr< Expansion0D > Expansion0DSharedPtr
 
void SetCoeffPhysOffsets(void)
 
std::vector< ExpansionSharedPtr > ExpansionVector
 
Array< OneD, int > m_coeff_offset
Offset of elemental data into the array m_coeffs. 
 
Base class for all multi-elemental spectral/hp expansions. 
 
boost::shared_ptr< LocalRegions::ExpansionVector > m_exp
The list of local expansions. 
 
Array< OneD, int > m_phys_offset
Offset of elemental data into the array m_phys. 
 
int m_ncoeffs
The total number of local degrees of freedom. m_ncoeffs . 
 
Array< OneD, int > m_offset_elmt_id
Array containing the element id m_offset_elmt_id[n] that the n^th consecutive block of data in m_coef...
 
boost::shared_ptr< PointExp > PointExpSharedPtr
 
ExpList0D()
The defualt constructor. 
 
This class is the abstraction of a collection of zero-dimensional expansions which is merely a collec...
 
virtual ~ExpList0D()
Destructor. 
 
void SetExpType(ExpansionType Type)
Returns the type of the expansion. 
 
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
 
boost::shared_ptr< MeshGraph > MeshGraphSharedPtr
 
boost::shared_ptr< Expansion1D > Expansion1DSharedPtr
 
boost::shared_ptr< PointGeom > PointGeomSharedPtr