Nektar++
solvers
IncNavierStokesSolver
EquationSystems
WeakPressureExtrapolate.h
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File: WeakPressureExtrapolate.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
// Permission is hereby granted, free of charge, to any person obtaining a
14
// copy of this software and associated documentation files (the "Software"),
15
// to deal in the Software without restriction, including without limitation
16
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
// and/or sell copies of the Software, and to permit persons to whom the
18
// Software is furnished to do so, subject to the following conditions:
19
//
20
// The above copyright notice and this permission notice shall be included
21
// in all copies or substantial portions of the Software.
22
//
23
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
// DEALINGS IN THE SOFTWARE.
30
//
31
// Description: Abstract base class for WeakPressureExtrapolate.
32
//
33
///////////////////////////////////////////////////////////////////////////////
34
35
#ifndef NEKTAR_SOLVERS_WEAKPRESSUREEXTRAPOLATE_H
36
#define NEKTAR_SOLVERS_WEAKPRESSUREEXTRAPOLATE_H
37
38
#include <
IncNavierStokesSolver/EquationSystems/IncNavierStokes.h
>
39
#include <
IncNavierStokesSolver/EquationSystems/StandardExtrapolate.h
>
40
#include <
LibUtilities/BasicUtils/NekFactory.hpp
>
41
#include <
LibUtilities/BasicUtils/SessionReader.h
>
42
#include <
LibUtilities/BasicUtils/SharedArray.hpp
>
43
#include <
LibUtilities/Memory/NekMemoryManager.hpp
>
44
#include <
MultiRegions/ExpList.h
>
45
#include <
SolverUtils/AdvectionSystem.h
>
46
47
namespace
Nektar
48
{
49
//--------
50
// Weak Pressure Extrapolate
51
// --------
52
53
class
WeakPressureExtrapolate;
54
55
typedef
std::shared_ptr<WeakPressureExtrapolate>
56
WeakPressureExtrapolateSharedPtr
;
57
58
class
WeakPressureExtrapolate
:
public
StandardExtrapolate
59
{
60
public
:
61
/// Creates an instance of this class
62
static
ExtrapolateSharedPtr
create
(
63
const
LibUtilities::SessionReaderSharedPtr
&pSession,
64
Array<OneD, MultiRegions::ExpListSharedPtr>
&pFields,
65
MultiRegions::ExpListSharedPtr
&pPressure,
const
Array<OneD, int>
&pVel,
66
const
SolverUtils::AdvectionSharedPtr
&advObject)
67
{
68
ExtrapolateSharedPtr
p
=
69
MemoryManager<WeakPressureExtrapolate>::AllocateSharedPtr
(
70
pSession, pFields, pPressure, pVel, advObject);
71
return
p
;
72
}
73
74
/// Name of class
75
static
std::string
className
;
76
77
WeakPressureExtrapolate
(
const
LibUtilities::SessionReaderSharedPtr
pSession,
78
Array<OneD, MultiRegions::ExpListSharedPtr>
pFields,
79
MultiRegions::ExpListSharedPtr
pPressure,
80
const
Array<OneD, int>
pVel,
81
const
SolverUtils::AdvectionSharedPtr
advObject);
82
83
~WeakPressureExtrapolate
()
override
;
84
85
protected
:
86
void
v_EvaluatePressureBCs
(
87
const
Array
<
OneD
,
const
Array<OneD, NekDouble>
> &fields,
88
const
Array
<
OneD
,
const
Array<OneD, NekDouble>
> &N,
89
NekDouble
kinvis)
override
;
90
91
void
v_MountHOPBCs
(
int
HBCdata,
NekDouble
kinvis,
Array<OneD, NekDouble>
&Q,
92
Array<OneD, const NekDouble>
&
Advection
)
override
;
93
94
void
v_AddNormVelOnOBC
(
const
int
nbcoeffs,
const
int
nreg,
95
Array
<
OneD
,
Array<OneD, NekDouble>
> &u)
override
;
96
97
static
std::string
solverTypeLookupId
;
98
};
99
100
}
// namespace Nektar
101
102
#endif
AdvectionSystem.h
NekFactory.hpp
SharedArray.hpp
ExpList.h
IncNavierStokes.h
NekMemoryManager.hpp
SessionReader.h
StandardExtrapolate.h
Nektar::Array
Definition:
BasicUtils/SharedArray.hpp:57
Nektar::MemoryManager::AllocateSharedPtr
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Definition:
NekMemoryManager.hpp:166
Nektar::SolverUtils::Advection
An abstract base class encapsulating the concept of advection of a vector field.
Definition:
Advection.h:81
Nektar::StandardExtrapolate
Definition:
StandardExtrapolate.h:58
Nektar::WeakPressureExtrapolate
Definition:
WeakPressureExtrapolate.h:59
Nektar::WeakPressureExtrapolate::v_MountHOPBCs
void v_MountHOPBCs(int HBCdata, NekDouble kinvis, Array< OneD, NekDouble > &Q, Array< OneD, const NekDouble > &Advection) override
Definition:
WeakPressureExtrapolate.cpp:139
Nektar::WeakPressureExtrapolate::solverTypeLookupId
static std::string solverTypeLookupId
Definition:
WeakPressureExtrapolate.h:97
Nektar::WeakPressureExtrapolate::className
static std::string className
Name of class.
Definition:
WeakPressureExtrapolate.h:75
Nektar::WeakPressureExtrapolate::v_AddNormVelOnOBC
void v_AddNormVelOnOBC(const int nbcoeffs, const int nreg, Array< OneD, Array< OneD, NekDouble > > &u) override
Definition:
WeakPressureExtrapolate.cpp:99
Nektar::WeakPressureExtrapolate::~WeakPressureExtrapolate
~WeakPressureExtrapolate() override
Definition:
WeakPressureExtrapolate.cpp:58
Nektar::WeakPressureExtrapolate::create
static ExtrapolateSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, MultiRegions::ExpListSharedPtr &pPressure, const Array< OneD, int > &pVel, const SolverUtils::AdvectionSharedPtr &advObject)
Creates an instance of this class.
Definition:
WeakPressureExtrapolate.h:62
Nektar::WeakPressureExtrapolate::v_EvaluatePressureBCs
void v_EvaluatePressureBCs(const Array< OneD, const Array< OneD, NekDouble > > &fields, const Array< OneD, const Array< OneD, NekDouble > > &N, NekDouble kinvis) override
Definition:
WeakPressureExtrapolate.cpp:71
Nektar::WeakPressureExtrapolate::WeakPressureExtrapolate
WeakPressureExtrapolate(const LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields, MultiRegions::ExpListSharedPtr pPressure, const Array< OneD, int > pVel, const SolverUtils::AdvectionSharedPtr advObject)
Definition:
WeakPressureExtrapolate.cpp:49
CellMLToNektar.cellml_metadata.p
p
Definition:
cellml_metadata.py:350
Nektar::LibUtilities::SessionReaderSharedPtr
std::shared_ptr< SessionReader > SessionReaderSharedPtr
Definition:
SessionReader.h:113
Nektar::MultiRegions::ExpListSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
Definition:
LocTraceToTraceMap.h:56
Nektar::SolverUtils::AdvectionSharedPtr
std::shared_ptr< Advection > AdvectionSharedPtr
A shared pointer to an Advection object.
Definition:
Advection.h:54
Nektar
Definition:
CoupledSolver.h:2
Nektar::ExtrapolateSharedPtr
std::shared_ptr< Extrapolate > ExtrapolateSharedPtr
Definition:
Extrapolate.h:60
Nektar::WeakPressureExtrapolateSharedPtr
std::shared_ptr< WeakPressureExtrapolate > WeakPressureExtrapolateSharedPtr
Definition:
WeakPressureExtrapolate.h:56
Nektar::NekDouble
double NekDouble
Definition:
NektarUnivTypeDefs.hpp:43
Nektar::OneD
Definition:
NektarUnivTypeDefs.hpp:54
Generated on Wed Oct 30 2024 16:07:34 for Nektar++ by
1.9.4