Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Field.hpp
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // File: Field.hpp
4 //
5 // For more information, please see: http://www.nektar.info/
6 //
7 // The MIT License
8 //
9 // Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10 // Department of Aeronautics, Imperial College London (UK), and Scientific
11 // Computing and Imaging Institute, University of Utah (USA).
12 //
13 // License for the specific language governing rights and limitations under
14 // Permission is hereby granted, free of charge, to any person obtaining a
15 // copy of this software and associated documentation files (the "Software"),
16 // to deal in the Software without restriction, including without limitation
17 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
18 // and/or sell copies of the Software, and to permit persons to whom the
19 // Software is furnished to do so, subject to the following conditions:
20 //
21 // The above copyright notice and this permission notice shall be included
22 // in all copies or substantial portions of the Software.
23 //
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
30 // DEALINGS IN THE SOFTWARE.
31 //
32 // Description: Field converter module base classes.
33 //
34 ////////////////////////////////////////////////////////////////////////////////
35 
36 #ifndef FIELDUTILS_FIELD
37 #define FIELDUTILS_FIELD
38 
39 #include <boost/shared_ptr.hpp>
40 
47 
53 #include <MultiRegions/ExpList.h>
55 
61 
62 #include "FieldUtilsDeclspec.h"
63 
64 using namespace std;
65 
66 namespace Nektar
67 {
68 namespace FieldUtils
69 {
70 
71 struct Field
72 {
74  : m_verbose(false), m_declareExpansionAsContField(false),
75  m_declareExpansionAsDisContField(false),
76  m_requireBoundaryExpansion(false), m_writeBndFld(false),
77  m_fldToBnd(false), m_addNormals(false),
78  m_setUpEquiSpacedFields(false), m_fieldPts(LibUtilities::NullPtsField)
79  {
80  }
81 
83  {
84  if (m_comm)
85  {
86  m_comm->Finalise();
87  }
88  }
89  bool m_verbose;
90  vector<LibUtilities::FieldDefinitionsSharedPtr> m_fielddef;
91  vector<vector<double> > m_data;
92  vector<MultiRegions::ExpListSharedPtr> m_exp;
93 
96 
98 
99  bool m_useFFT;
100 
105  map<string, vector<string> > m_inputfiles;
106 
108  vector<unsigned int> m_bndRegionsToWrite;
111 
113 
115 
117 
119 
121  int NumHomogeneousDir, bool fldfilegiven = false)
122  {
123 
125 
126  // Set up expansion list
127  int expdim = m_graph->GetMeshDimension();
128  bool dealiasing = false;
129 
130  m_session->MatchSolverInfo("USEFFT", "FFTW", m_useFFT, false);
131 
132  switch (expdim)
133  {
134  case 1:
135  {
136  ASSERTL0(NumHomogeneousDir <= 2,
137  "Quasi-3D approach is only set up for 1 or 2 "
138  "homogeneous directions");
139 
140  if (NumHomogeneousDir == 1)
141  {
143 
144  // Define Homogeneous expansion
145  int nplanes;
146  NekDouble ly;
148 
149  if (fldfilegiven)
150  {
151  nplanes = m_fielddef[0]->m_numModes[1];
152  ly = m_fielddef[0]->m_homogeneousLengths[0];
153  btype = m_fielddef[0]->m_basis[1];
154  }
155  else
156  {
157  m_session->LoadParameter("HomModesZ", nplanes);
158  m_session->LoadParameter("LY", ly);
159  btype = LibUtilities::eFourier;
160  }
161 
162  // Choose points to be at evenly spaced points at
163  // nplanes points
164  const LibUtilities::PointsKey Pkey(
166 
167  const LibUtilities::BasisKey Bkey(btype, nplanes, Pkey);
168 
169  if (m_declareExpansionAsContField ||
170  m_declareExpansionAsDisContField)
171  {
172  ASSERTL0(false, "ContField2DHomogeneous1D or "
173  "DisContField2DHomogenenous1D has "
174  "not been implemented");
175  }
176 
177  Exp2DH1 =
179  AllocateSharedPtr(m_session, Bkey, ly, m_useFFT,
180  dealiasing, m_graph);
181  exp = Exp2DH1;
182  }
183  else if (NumHomogeneousDir == 2)
184  {
186 
187  int nylines, nzlines;
188  NekDouble ly, lz;
189  LibUtilities::BasisType btype1, btype2;
190 
191  if (fldfilegiven)
192  {
193  nylines = m_fielddef[0]->m_numModes[1];
194  nzlines = m_fielddef[0]->m_numModes[2];
195  ly = m_fielddef[0]->m_homogeneousLengths[0];
196  lz = m_fielddef[0]->m_homogeneousLengths[1];
197  btype1 = m_fielddef[0]->m_basis[1];
198  btype2 = m_fielddef[0]->m_basis[2];
199  }
200  else
201  {
202  m_session->LoadParameter("HomModesY", nylines);
203  m_session->LoadParameter("HomModesZ", nzlines);
204  m_session->LoadParameter("LY", ly);
205  m_session->LoadParameter("LZ", lz);
206  btype1 = LibUtilities::eFourier;
207  btype2 = LibUtilities::eFourier;
208  }
209 
210  // Choose points to be at evenly spaced points at
211  // nplanes points
212  const LibUtilities::PointsKey PkeyY(
214  const LibUtilities::BasisKey BkeyY(btype1, nylines, PkeyY);
215 
216  const LibUtilities::PointsKey PkeyZ(
218  const LibUtilities::BasisKey BkeyZ(btype2, nzlines, PkeyZ);
219 
220  if (m_declareExpansionAsContField)
221  {
222  Exp3DH2 = MemoryManager<
224  AllocateSharedPtr(m_session, BkeyY, BkeyZ, ly, lz,
225  m_useFFT, dealiasing, m_graph,
226  m_session->GetVariable(0));
227  }
228  else if (m_declareExpansionAsDisContField)
229  {
230  Exp3DH2 = MemoryManager<
232  AllocateSharedPtr(m_session, BkeyY, BkeyZ, ly, lz,
233  m_useFFT, dealiasing, m_graph,
234  m_session->GetVariable(0));
235  }
236  else
237  {
238  Exp3DH2 = MemoryManager<
240  AllocateSharedPtr(m_session, BkeyY, BkeyZ, ly, lz,
241  m_useFFT, dealiasing, m_graph);
242  }
243 
244  exp = Exp3DH2;
245  }
246  else
247  {
249 
250  if (m_declareExpansionAsContField)
251  {
253  AllocateSharedPtr(m_session, m_graph,
254  m_session->GetVariable(0));
255  }
256  else if (m_declareExpansionAsDisContField)
257  {
259  AllocateSharedPtr(m_session, m_graph,
260  m_session->GetVariable(0));
261  }
262  else
263  {
265  AllocateSharedPtr(m_session, m_graph);
266  }
267 
268  exp = Exp1D;
269  }
270  }
271  break;
272  case 2:
273  {
274  ASSERTL0(NumHomogeneousDir <= 1,
275  "NumHomogeneousDir is only set up for 1");
276 
277  if (NumHomogeneousDir == 1)
278  {
280 
281  // Define Homogeneous expansion
282  int nplanes;
283  NekDouble lz;
287 
288  if (fldfilegiven)
289  {
290  nplanes = m_fielddef[0]->m_numModes[2];
291  lz = m_fielddef[0]->m_homogeneousLengths[0];
292  btype = m_fielddef[0]->m_basis[2];
293 
295  {
296  btype = LibUtilities::eFourier;
297  m_fielddef[0]->m_basis[2] =
299  if (nplanes <= 2)
300  {
301  nplanes = 4;
302  }
303  }
304  else if (btype == LibUtilities::eFourierHalfModeRe &&
305  nplanes == 1)
306  {
308  }
309  }
310  else
311  {
312  m_session->LoadParameter("HomModesZ", nplanes);
313  m_session->LoadParameter("LZ", lz);
314  btype = LibUtilities::eFourier;
315  }
316 
317  // Choose points to be at evenly spaced points at
318  // nplanes points
319  const LibUtilities::PointsKey Pkey(
320  nplanes, ptype);
321 
322  const LibUtilities::BasisKey Bkey(btype, nplanes, Pkey);
323 
324  if (m_declareExpansionAsContField)
325  {
326  Exp3DH1 = MemoryManager<
328  AllocateSharedPtr(m_session, Bkey, lz, m_useFFT,
329  dealiasing, m_graph,
330  m_session->GetVariable(0));
331  }
332  else if (m_declareExpansionAsDisContField)
333  {
334  Exp3DH1 = MemoryManager<
336  AllocateSharedPtr(m_session, Bkey, lz, m_useFFT,
337  dealiasing, m_graph,
338  m_session->GetVariable(0));
339  }
340  else
341  {
342  Exp3DH1 = MemoryManager<
344  AllocateSharedPtr(m_session, Bkey, lz, m_useFFT,
345  dealiasing, m_graph);
346  }
347  exp = Exp3DH1;
348  }
349  else
350  {
352 
353  if (m_declareExpansionAsContField)
354  {
356  AllocateSharedPtr(m_session, m_graph,
357  m_session->GetVariable(0));
358  }
359  else if (m_declareExpansionAsDisContField)
360  {
362  AllocateSharedPtr(m_session, m_graph,
363  m_session->GetVariable(0));
364  }
365  else
366  {
368  AllocateSharedPtr(m_session, m_graph);
369  }
370 
371  exp = Exp2D;
372  }
373  }
374  break;
375  case 3:
376  {
378 
379  if (m_declareExpansionAsContField)
380  {
382  AllocateSharedPtr(m_session, m_graph,
383  m_session->GetVariable(0));
384  }
385  else if (m_declareExpansionAsDisContField)
386  {
388  AllocateSharedPtr(m_session, m_graph,
389  m_session->GetVariable(0));
390  }
391  else
392  {
393  Exp3D = MemoryManager<
394  MultiRegions::ExpList3D>::AllocateSharedPtr(m_session,
395  m_graph);
396  }
397 
398  exp = Exp3D;
399  }
400  break;
401  default:
402  ASSERTL0(false, "Expansion dimension not recognised");
403  break;
404  }
405 
406  return exp;
407  };
408 
409  /**
410  * @brief Construct a FieldIO object for the file @p filename.
411  *
412  * This routine constructs an appropriate FieldIO object for a filename
413  * through the LibUtilities::FieldIO::GetFileType function to detect the
414  * file format. The result is then cached in Field::m_fld to avoid needing
415  * to repeatedly construct the object.
416  *
417  * @param filename Filename to open.
418  * @return Reader for @p filename.
419  */
421  string filename)
422  {
423  LibUtilities::CommSharedPtr c = m_session ? m_session->GetComm() :
425  string fmt = LibUtilities::FieldIO::GetFileType(filename, c);
427  m_fld.find(fmt);
428 
429  if (it == m_fld.end())
430  {
433  m_fld[fmt] = fld;
434  return fld;
435  }
436  else
437  {
438  return it->second;
439  }
440  }
441 
443  int NumHomogeneousDir, string var = "DefaultVar", bool NewField = false)
444  {
445  if (var.compare("DefaultVar") == 0 && m_requireBoundaryExpansion)
446  {
447  if (m_session->GetVariables().size())
448  {
449  var = m_session->GetVariables()[0];
450  }
451  }
453  switch (m_graph->GetMeshDimension())
454  {
455  case 1:
456  {
457  if (NumHomogeneousDir == 1)
458  {
459  ASSERTL0(!(m_declareExpansionAsContField ||
460  m_declareExpansionAsDisContField),
461  "ContField2DHomogeneous1D or "
462  "DisContField2DHomogenenous1D has not been "
463  "implemented");
464 
466  boost::dynamic_pointer_cast<
468 
470  AllocateSharedPtr(*tmp2);
471  }
472  else if (NumHomogeneousDir == 2)
473  {
474  if (m_declareExpansionAsContField)
475  {
477  boost::dynamic_pointer_cast<
479  m_exp[0]);
480 
481  tmp = MemoryManager<
483  AllocateSharedPtr(*tmp2);
484  }
485  else if (m_declareExpansionAsDisContField)
486  {
488  tmp2 = boost::dynamic_pointer_cast<
490  m_exp[0]);
491 
492  tmp = MemoryManager<
494  AllocateSharedPtr(*tmp2);
495  }
496  else
497  {
499  boost::dynamic_pointer_cast<
501 
502  tmp = MemoryManager<
504  AllocateSharedPtr(*tmp2);
505  }
506  }
507  else
508  {
509  if (m_declareExpansionAsContField)
510  {
512  boost::dynamic_pointer_cast<
513  MultiRegions::ContField1D>(m_exp[0]);
514 
516  AllocateSharedPtr(m_session, m_graph, var);
517  }
518  else if (m_declareExpansionAsDisContField)
519  {
521  boost::dynamic_pointer_cast<
522  MultiRegions::DisContField1D>(m_exp[0]);
523 
525  AllocateSharedPtr(m_session, m_graph, var);
526  }
527  else
528  {
530  boost::dynamic_pointer_cast<
531  MultiRegions::ExpList1D>(m_exp[0]);
532 
533  tmp = MemoryManager<
534  MultiRegions::ExpList1D>::AllocateSharedPtr(*tmp2);
535  }
536  }
537  }
538  break;
539  case 2:
540  {
541  if (NumHomogeneousDir == 1)
542  {
543  if (m_declareExpansionAsContField)
544  {
545  if (NewField)
546  {
547  bool dealiasing = false;
548 
549  tmp = MemoryManager<
551  AllocateSharedPtr(
552  m_session, m_exp[0]
553  ->GetHomogeneousBasis()
554  ->GetBasisKey(),
555  m_exp[0]->GetHomoLen(), m_useFFT,
556  dealiasing, m_graph, var);
557  }
558  else
559  {
561  tmp2 = boost::dynamic_pointer_cast<
563  m_exp[0]);
564 
565  ASSERTL0(tmp2, "Failed to type cast m_exp[0]");
566  tmp = MemoryManager<
568  AllocateSharedPtr(*tmp2, m_graph, var);
569  }
570  }
571  else if (m_declareExpansionAsDisContField)
572  {
573  if (NewField)
574  {
575  bool dealiasing = false;
576 
577  tmp = MemoryManager<
579  AllocateSharedPtr(
580  m_session, m_exp[0]
581  ->GetHomogeneousBasis()
582  ->GetBasisKey(),
583  m_exp[0]->GetHomoLen(), m_useFFT,
584  dealiasing, m_graph, var);
585  }
586  else
587  {
589  tmp2 = boost::dynamic_pointer_cast<
591  m_exp[0]);
592  ASSERTL0(tmp2, "Failed to type cast m_exp[0]");
593 
594  tmp = MemoryManager<
596  AllocateSharedPtr(*tmp2);
597  }
598  }
599  else
600  {
601  if (NewField)
602  {
603  bool dealiasing = false;
604 
605  tmp = MemoryManager<
607  AllocateSharedPtr(
608  m_session, m_exp[0]
609  ->GetHomogeneousBasis()
610  ->GetBasisKey(),
611  m_exp[0]->GetHomoLen(), m_useFFT,
612  dealiasing, m_graph);
613  }
614  else
615  {
617  boost::dynamic_pointer_cast<
619  m_exp[0]);
620  ASSERTL0(tmp2, "Failed to type cast m_exp[0]");
621 
622  tmp = MemoryManager<
624  AllocateSharedPtr(*tmp2);
625  }
626  }
627  }
628  else
629  {
630  if (m_declareExpansionAsContField)
631  {
632  if (NewField)
633  {
635  AllocateSharedPtr(m_session, m_graph, var);
636  }
637  else // call copy constructor
638  {
639 
641  boost::dynamic_pointer_cast<
642  MultiRegions::ContField2D>(m_exp[0]);
643 
645  AllocateSharedPtr(*tmp2, m_graph, var);
646  }
647  }
648  else if (m_declareExpansionAsDisContField)
649  {
650  if (NewField)
651  {
653  AllocateSharedPtr(m_session, m_graph, var);
654  }
655  else // call copy constructor
656  {
658  boost::dynamic_pointer_cast<
659  MultiRegions::DisContField2D>(m_exp[0]);
660 
662  AllocateSharedPtr(*tmp2, m_graph, var);
663  }
664  }
665  else
666  {
668  boost::dynamic_pointer_cast<
669  MultiRegions::ExpList2D>(m_exp[0]);
670 
671  tmp = MemoryManager<
672  MultiRegions::ExpList2D>::AllocateSharedPtr(*tmp2);
673  }
674  }
675  }
676  break;
677  case 3:
678  {
679  if (m_declareExpansionAsContField)
680  {
681  if (NewField)
682  {
684  AllocateSharedPtr(m_session, m_graph, var);
685  }
686  else
687  {
689  boost::dynamic_pointer_cast<
690  MultiRegions::ContField3D>(m_exp[0]);
691 
693  AllocateSharedPtr(*tmp2, m_graph, var);
694 
695  m_locToGlobalMap = tmp2->GetLocalToGlobalMap();
696  }
697  }
698  else if (m_declareExpansionAsDisContField)
699  {
700  if (NewField)
701  {
703  AllocateSharedPtr(m_session, m_graph, var);
704  }
705  else
706  {
708  boost::dynamic_pointer_cast<
709  MultiRegions::DisContField3D>(m_exp[0]);
710 
712  AllocateSharedPtr(*tmp2, m_graph, var);
713  }
714  }
715  else
716  {
718  boost::dynamic_pointer_cast<MultiRegions::ExpList3D>(
719  m_exp[0]);
720 
721  tmp = MemoryManager<
722  MultiRegions::ExpList3D>::AllocateSharedPtr(*tmp2);
723  }
724  }
725  break;
726  default:
727  ASSERTL0(false, "Expansion dimension not recognised");
728  break;
729  }
730 
731  return tmp;
732  }
733 
734 private:
735  /// Map to store FieldIO instances. Key is the reader type, value is the
736  /// FieldIO object.
737  map<string, LibUtilities::FieldIOSharedPtr> m_fld;
738 };
739 
740 typedef boost::shared_ptr<Field> FieldSharedPtr;
741 }
742 }
743 
744 #endif
LibUtilities::CommSharedPtr m_comm
Definition: Field.hpp:101
vector< MultiRegions::ExpListSharedPtr > m_exp
Definition: Field.hpp:92
FIELD_UTILS_EXPORT MultiRegions::ExpListSharedPtr SetUpFirstExpList(int NumHomogeneousDir, bool fldfilegiven=false)
Definition: Field.hpp:120
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:198
boost::shared_ptr< ContField1D > ContField1DSharedPtr
Definition: ContField1D.h:236
boost::shared_ptr< ContField3DHomogeneous1D > ContField3DHomogeneous1DSharedPtr
FIELD_UTILS_EXPORT ~Field()
Definition: Field.hpp:82
tBaseSharedPtr CreateInstance(tKey idKey BOOST_PP_COMMA_IF(MAX_PARAM) BOOST_PP_ENUM_BINARY_PARAMS(MAX_PARAM, tParam, x))
Create an instance of the class referred to by idKey.
Definition: NekFactory.hpp:162
bool m_declareExpansionAsDisContField
Definition: Field.hpp:95
FIELD_UTILS_EXPORT LibUtilities::FieldIOSharedPtr FieldIOForFile(string filename)
Construct a FieldIO object for the file filename.
Definition: Field.hpp:420
General purpose memory allocation routines with the ability to allocate from thread specific memory p...
boost::shared_ptr< DisContField3DHomogeneous1D > DisContField3DHomogeneous1DSharedPtr
LibUtilities::PtsIOSharedPtr m_ptsIO
Definition: Field.hpp:104
LibUtilities::SessionReaderSharedPtr m_session
Definition: Field.hpp:102
STL namespace.
boost::shared_ptr< ContField2D > ContField2DSharedPtr
Definition: ContField2D.h:287
Fourier Expansion .
Definition: BasisType.h:52
FieldIOFactory & GetFieldIOFactory()
Returns the FieldIO factory.
Definition: FieldIO.cpp:74
boost::shared_ptr< SessionReader > SessionReaderSharedPtr
Definition: MeshPartition.h:51
std::map< std::string, std::string > FieldMetaDataMap
Definition: FieldIO.h:54
CommFactory & GetCommFactory()
Definition: Comm.cpp:61
SpatialDomains::MeshGraphSharedPtr m_graph
Definition: Field.hpp:103
boost::shared_ptr< PtsField > PtsFieldSharedPtr
Definition: PtsField.h:178
boost::shared_ptr< ExpList3DHomogeneous2D > ExpList3DHomogeneous2DSharedPtr
Shared pointer to an ExpList3DHomogeneous2D object.
bool m_declareExpansionAsContField
Definition: Field.hpp:94
FIELD_UTILS_EXPORT MultiRegions::ExpListSharedPtr AppendExpList(int NumHomogeneousDir, string var="DefaultVar", bool NewField=false)
Definition: Field.hpp:442
Abstraction of a two-dimensional multi-elemental expansion which is merely a collection of local expa...
1D Evenly-spaced points using Lagrange polynomial
Definition: PointsType.h:65
boost::shared_ptr< DisContField3DHomogeneous2D > DisContField3DHomogeneous2DSharedPtr
boost::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
Definition: Comm.h:55
1D Evenly-spaced points using Fourier Fit
Definition: PointsType.h:66
Fourier Modified expansions with just the real part of the first mode .
Definition: BasisType.h:59
This class is the abstraction of a global continuous two- dimensional spectral/hp element expansion w...
Definition: ContField2D.h:56
Abstraction of a global continuous one-dimensional spectral/hp element expansion which approximates t...
Definition: ContField1D.h:56
boost::shared_ptr< ContField3DHomogeneous2D > ContField3DHomogeneous2DSharedPtr
boost::shared_ptr< ExpList1D > ExpList1DSharedPtr
Shared pointer to an ExpList1D object.
Definition: ExpList1D.h:50
vector< unsigned int > m_bndRegionsToWrite
Definition: Field.hpp:108
boost::shared_ptr< Field > FieldSharedPtr
Definition: Field.hpp:740
vector< vector< double > > m_data
Definition: Field.hpp:91
boost::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
boost::shared_ptr< DisContField2D > DisContField2DSharedPtr
This class is the abstraction of a global discontinuous two- dimensional spectral/hp element expansio...
Defines a specification for a set of points.
Definition: Points.h:58
boost::shared_ptr< FieldIO > FieldIOSharedPtr
Definition: FieldIO.h:309
double NekDouble
boost::shared_ptr< DisContField1D > DisContField1DSharedPtr
boost::shared_ptr< ExpList2D > ExpList2DSharedPtr
Shared pointer to an ExpList2D object.
Definition: ExpList2D.h:49
boost::shared_ptr< DisContField3D > DisContField3DSharedPtr
map< string, LibUtilities::FieldIOSharedPtr > m_fld
Map to store FieldIO instances. Key is the reader type, value is the FieldIO object.
Definition: Field.hpp:737
boost::shared_ptr< ExpList2DHomogeneous1D > ExpList2DHomogeneous1DSharedPtr
Shared pointer to an ExpList2DHomogeneous1D object.
boost::shared_ptr< PtsIO > PtsIOSharedPtr
Definition: PtsIO.h:95
boost::shared_ptr< ExpList3D > ExpList3DSharedPtr
Shared pointer to an ExpList3D object.
Definition: ExpList3D.h:115
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs typedef NekMatrix< LhsDataType, StandardMatrixTag >::iterator iterator
static PtsFieldSharedPtr NullPtsField
Definition: PtsField.h:179
#define FIELD_UTILS_EXPORT
Fourier ModifiedExpansion with just the first mode .
Definition: BasisType.h:58
This class is the abstraction of a one-dimensional multi-elemental expansions which is merely a colle...
Definition: ExpList1D.h:61
Abstraction of a two-dimensional multi-elemental expansion which is merely a collection of local expa...
Definition: ExpList2D.h:60
Abstraction of a three-dimensional multi-elemental expansion which is merely a collection of local ex...
Definition: ExpList3D.h:49
MultiRegions::AssemblyMapCGSharedPtr m_locToGlobalMap
Definition: Field.hpp:116
boost::shared_ptr< ExpList3DHomogeneous1D > ExpList3DHomogeneous1DSharedPtr
Shared pointer to an ExpList3DHomogeneous1D object.
map< string, vector< string > > m_inputfiles
Definition: Field.hpp:105
boost::shared_ptr< ContField3D > ContField3DSharedPtr
Definition: ContField3D.h:206
boost::shared_ptr< AssemblyMapCG > AssemblyMapCGSharedPtr
Definition: AssemblyMapCG.h:52
LibUtilities::FieldMetaDataMap m_fieldMetaDataMap
Definition: Field.hpp:118
vector< LibUtilities::FieldDefinitionsSharedPtr > m_fielddef
Definition: Field.hpp:90
LibUtilities::PtsFieldSharedPtr m_fieldPts
Definition: Field.hpp:114
boost::shared_ptr< MeshGraph > MeshGraphSharedPtr
Definition: MeshGraph.h:442
Abstraction of a one-dimensional multi-elemental expansion which is merely a collection of local expa...
Abstraction of a two-dimensional multi-elemental expansion which is merely a collection of local expa...
Describes the specification for a Basis.
Definition: Basis.h:50
FIELD_UTILS_EXPORT Field()
Definition: Field.hpp:73