Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
Nektar::Collections::PhysDeriv_NoCollection Class Reference

Phys deriv operator using original LocalRegions implementation. More...

Inheritance diagram for Nektar::Collections::PhysDeriv_NoCollection:
Inheritance graph
[legend]
Collaboration diagram for Nektar::Collections::PhysDeriv_NoCollection:
Collaboration graph
[legend]

Public Member Functions

virtual ~PhysDeriv_NoCollection ()
 
virtual void operator() (const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output0, Array< OneD, NekDouble > &output1, Array< OneD, NekDouble > &output2, Array< OneD, NekDouble > &wsp)
 Perform operation. More...
 
virtual void operator() (int dir, const Array< OneD, const NekDouble > &input, Array< OneD, NekDouble > &output, Array< OneD, NekDouble > &wsp)
 
- Public Member Functions inherited from Nektar::Collections::Operator
 Operator (std::vector< StdRegions::StdExpansionSharedPtr > pCollExp, boost::shared_ptr< CoalescedGeomData > GeomData)
 Constructor. More...
 
virtual COLLECTIONS_EXPORT ~Operator ()
 
int GetWspSize ()
 Get the size of the required workspace. More...
 

Protected Attributes

vector
< StdRegions::StdExpansionSharedPtr
m_expList
 
- Protected Attributes inherited from Nektar::Collections::Operator
StdRegions::StdExpansionSharedPtr m_stdExp
 
unsigned int m_numElmt
 
unsigned int m_wspSize
 

Private Member Functions

 PhysDeriv_NoCollection (vector< StdRegions::StdExpansionSharedPtr > pCollExp, CoalescedGeomDataSharedPtr pGeomData)
 

Detailed Description

Phys deriv operator using original LocalRegions implementation.

Definition at line 380 of file PhysDeriv.cpp.

Constructor & Destructor Documentation

virtual Nektar::Collections::PhysDeriv_NoCollection::~PhysDeriv_NoCollection ( )
inlinevirtual

Definition at line 385 of file PhysDeriv.cpp.

386  {
387  }
Nektar::Collections::PhysDeriv_NoCollection::PhysDeriv_NoCollection ( vector< StdRegions::StdExpansionSharedPtr pCollExp,
CoalescedGeomDataSharedPtr  pGeomData 
)
inlineprivate

Definition at line 458 of file PhysDeriv.cpp.

461  : Operator(pCollExp,pGeomData)
462  {
463  m_expList = pCollExp;
464  }
Operator(std::vector< StdRegions::StdExpansionSharedPtr > pCollExp, boost::shared_ptr< CoalescedGeomData > GeomData)
Constructor.
Definition: Operator.h:112
vector< StdRegions::StdExpansionSharedPtr > m_expList
Definition: PhysDeriv.cpp:455

Member Function Documentation

virtual void Nektar::Collections::PhysDeriv_NoCollection::operator() ( const Array< OneD, const NekDouble > &  input,
Array< OneD, NekDouble > &  output0,
Array< OneD, NekDouble > &  output1,
Array< OneD, NekDouble > &  output2,
Array< OneD, NekDouble > &  wsp 
)
inlinevirtual

Perform operation.

Implements Nektar::Collections::Operator.

Definition at line 389 of file PhysDeriv.cpp.

References ASSERTL0.

395  {
396  const int nPhys = m_expList[0]->GetTotPoints();
397  Array<OneD, NekDouble> tmp0,tmp1,tmp2;
398 
399  // calculate local derivatives
400  switch (m_expList[0]->GetShapeDimension())
401  {
402  case 1:
403  {
404  for (int i = 0; i < m_numElmt; ++i)
405  {
406  m_expList[i]->PhysDeriv(input + i*nPhys,
407  tmp0 = output0 + i*nPhys);
408  }
409  break;
410  }
411  case 2:
412  {
413  for (int i = 0; i < m_numElmt; ++i)
414  {
415  m_expList[i]->PhysDeriv(input + i*nPhys,
416  tmp0 = output0 + i*nPhys,
417  tmp1 = output1 + i*nPhys);
418  }
419  break;
420  }
421  case 3:
422  {
423  for (int i = 0; i < m_numElmt; ++i)
424  {
425  m_expList[i]->PhysDeriv(input + i*nPhys,
426  tmp0 = output0 + i*nPhys,
427  tmp1 = output1 + i*nPhys,
428  tmp2 = output2 + i*nPhys);
429  }
430  break;
431  }
432  default:
433  ASSERTL0(false, "Unknown dimension.");
434  }
435  }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:198
vector< StdRegions::StdExpansionSharedPtr > m_expList
Definition: PhysDeriv.cpp:455
virtual void Nektar::Collections::PhysDeriv_NoCollection::operator() ( int  dir,
const Array< OneD, const NekDouble > &  input,
Array< OneD, NekDouble > &  output,
Array< OneD, NekDouble > &  wsp 
)
inlinevirtual

Implements Nektar::Collections::Operator.

Definition at line 437 of file PhysDeriv.cpp.

442  {
443  const int nPhys = m_expList[0]->GetTotPoints();
444  Array<OneD, NekDouble> tmp;
445 
446  // calculate local derivatives
447  for (int i = 0; i < m_numElmt; ++i)
448  {
449  m_expList[i]->PhysDeriv(dir, input + i*nPhys,
450  tmp = output + i*nPhys);
451  }
452  }
vector< StdRegions::StdExpansionSharedPtr > m_expList
Definition: PhysDeriv.cpp:455

Member Data Documentation

vector<StdRegions::StdExpansionSharedPtr> Nektar::Collections::PhysDeriv_NoCollection::m_expList
protected

Definition at line 455 of file PhysDeriv.cpp.