Nektar++
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
library
StdRegions
StdExpansion1D.h
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File StdExpansion1D.h
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: Daughter of StdExpansion. This class contains routine
33
// which are common to 1d expansion. Typically this inolves physical
34
// space operations.
35
//
36
///////////////////////////////////////////////////////////////////////////////
37
38
39
#ifndef STDEXP1D_H
40
#define STDEXP1D_H
41
42
#include <
StdRegions/StdExpansion.h
>
43
#include <
StdRegions/StdRegionsDeclspec.h
>
44
45
namespace
Nektar
46
{
47
namespace
StdRegions
48
{
49
50
class
StdExpansion1D
:
virtual
public
StdExpansion
51
{
52
53
public
:
54
55
STD_REGIONS_EXPORT
StdExpansion1D
();
56
STD_REGIONS_EXPORT
StdExpansion1D
(
int
numcoeffs,
const
LibUtilities::BasisKey
&Ba);
57
STD_REGIONS_EXPORT
StdExpansion1D
(
const
StdExpansion1D &T);
58
STD_REGIONS_EXPORT
virtual
~StdExpansion1D
();
59
60
/** \brief Evaluate the derivative \f$ d/d{\xi_1} \f$ at the
61
* physical quadrature points given by \a inarray and return in
62
* \a outarray.
63
*
64
* \param inarray array of a function evaluated at the quadrature
65
* points
66
* \param outarray the resulting array of the derivative \f$
67
* du/d_{\xi_1}|_{\xi_{1i}} \f$ will be stored in the array
68
* \a outarray as output of the function
69
*/
70
STD_REGIONS_EXPORT
void
PhysTensorDeriv
(
71
const
Array<OneD, const NekDouble>& inarray,
72
Array<OneD, NekDouble>& outarray);
73
74
protected
:
75
std::map<int, NormalVector>
m_vertexNormals
;
76
77
STD_REGIONS_EXPORT
virtual
NekDouble
v_PhysEvaluate
(
78
const
Array<OneD, const NekDouble>& coords,
79
const
Array<OneD, const NekDouble>& physvals);
80
81
82
private
:
83
84
// Virtual Functions ----------------------------------------
85
86
virtual
int
v_GetCoordim
(
void
)
87
{
88
return
1;
89
}
90
91
virtual
int
v_GetShapeDimension
()
const
92
{
93
return
1;
94
}
95
96
virtual
int
v_GetNedges
()
const
97
{
98
return
0;
99
}
100
101
virtual
int
v_GetNfaces
()
const
102
{
103
return
0;
104
}
105
106
STD_REGIONS_EXPORT
virtual
void
v_SetUpPhysNormals
(
const
int
vertex);
107
STD_REGIONS_EXPORT
const
NormalVector
&
v_GetSurfaceNormal
(
108
const
int
id
)
const
;
109
110
STD_REGIONS_EXPORT
const
NormalVector
&
v_GetVertexNormal
(
const
int
vertex)
const
;
111
};
112
113
typedef
boost::shared_ptr<StdExpansion1D>
StdExpansion1DSharedPtr
;
114
115
}
//end of namespace
116
}
//end of namespace
117
118
#endif //STDEXP1D_H
Generated on Sun Mar 15 2015 00:11:34 for Nektar++ by
1.8.1.2