Nektar++
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
solvers
ShallowWaterSolver
RiemannSolvers
LinearAverageSolver.cpp
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File: LinearAverageSolver.cpp
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: Simple mean value solver for the Linear Shallow Water
33
// Equations.
34
//
35
///////////////////////////////////////////////////////////////////////////////
36
37
#include <
ShallowWaterSolver/RiemannSolvers/LinearAverageSolver.h
>
38
39
namespace
Nektar
40
{
41
std::string
LinearAverageSolver::solverName
=
42
SolverUtils::GetRiemannSolverFactory
().
RegisterCreatorFunction
(
43
"LinearAverage"
,
44
LinearAverageSolver::create
,
45
"Average Value Riemann solver"
);
46
47
LinearAverageSolver::LinearAverageSolver
() :
LinearSWESolver
()
48
{
49
50
}
51
52
/**
53
* @brief Average Value Riemann solver for the Linear Shallow
54
* Water Equations
55
*
56
* @param etaL Free surface elevation left state.
57
* @param etaR Free surface elevation right state.
58
* @param uL x-velocity left state.
59
* @param uR x-velocity right state.
60
* @param vL y-velocity left state.
61
* @param vR y-velocity right state.
62
* @param dL still water depth component left state.
63
* @param dR still water depth component right state.
64
* @param etaf Computed Riemann flux for continuity.
65
* @param uf Computed Riemann flux for x-momentum component
66
* @param vf Computed Riemann flux for y-momentum component
67
*/
68
void
LinearAverageSolver::v_PointSolve
(
69
double
etaL,
double
uL,
double
vL,
double
dL,
70
double
etaR,
double
uR,
double
vR,
double
dR,
71
double
&etaf,
double
&uf,
double
&vf)
72
{
73
static
NekDouble
g =
m_params
[
"gravity"
]();
74
75
etaf = 0.5 * (dL * uL + dR * uR);
76
uf = 0.5 * (g * etaL + g * etaR);
77
vf = 0.0;
78
}
79
}
LinearAverageSolver.h
Nektar::LinearAverageSolver::create
static RiemannSolverSharedPtr create()
Definition:
LinearAverageSolver.h:47
Nektar
<
Definition:
CoupledSolver.h:1
Nektar::LinearAverageSolver::LinearAverageSolver
LinearAverageSolver()
Definition:
LinearAverageSolver.cpp:47
Nektar::SolverUtils::GetRiemannSolverFactory
RiemannSolverFactory & GetRiemannSolverFactory()
Definition:
RiemannSolver.cpp:63
Nektar::NekDouble
double NekDouble
Definition:
NektarUnivTypeDefs.hpp:43
Nektar::LinearAverageSolver::v_PointSolve
virtual void v_PointSolve(double etaL, double uL, double vL, double dL, double etaR, double uR, double vR, double dR, double &etaf, double &uf, double &vf)
Average Value Riemann solver for the Linear Shallow Water Equations.
Definition:
LinearAverageSolver.cpp:68
Nektar::LinearAverageSolver::solverName
static std::string solverName
Definition:
LinearAverageSolver.h:53
Nektar::SolverUtils::RiemannSolver::m_params
std::map< std::string, RSParamFuncType > m_params
Map of parameter function types.
Definition:
RiemannSolver.h:152
Nektar::LinearSWESolver
Definition:
LinearSWESolver.h:45
Nektar::LibUtilities::NekFactory::RegisterCreatorFunction
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.
Definition:
NekFactory.hpp:215
Generated on Tue Dec 8 2015 23:41:29 for Nektar++ by
1.8.9.1