WarpX
Toggle main menu visibility
Loading...
Searching...
No Matches
Source
Initialization
GetVelocity.H
Go to the documentation of this file.
1
/* Copyright 2021 Hannah Klion
2
*
3
* This file is part of WarpX.
4
*
5
* License: BSD-3-Clause-LBNL
6
*/
7
8
#ifndef WARPX_GET_VELOCITY_H_
9
#define WARPX_GET_VELOCITY_H_
10
11
#include "
VelocityProperties.H
"
12
20
struct
GetVelocityVector
21
{
22
/* Type of velocity initialization */
23
VelocityInitType
m_type
;
24
26
amrex::Real
m_ux_mean
{0},
m_uy_mean
{0},
m_uz_mean
{0};
28
amrex::ParserExecutor<3>
m_ux_mean_parser
,
m_uy_mean_parser
,
m_uz_mean_parser
;
35
explicit
GetVelocityVector
(
VelocityProperties
const
& vel)
noexcept
;
36
48
AMREX_GPU_HOST_DEVICE
49
amrex::XDim3
operator()
(
amrex::Real
const
x,
amrex::Real
const
y,
amrex::Real
const
z)
const
noexcept
50
{
51
switch
(
m_type
)
52
{
53
case
(
VelConstantVector
):
54
{
55
return
amrex::XDim3
{
m_ux_mean
,
m_uy_mean
,
m_uz_mean
};
56
}
57
case
(
VelParserFunctionVector
):
58
{
59
return
amrex::XDim3
{
m_ux_mean_parser
(x,y,z),
m_uy_mean_parser
(x,y,z),
m_uz_mean_parser
(x,y,z) };
60
}
61
default
:
62
{
63
amrex::Abort
(
"Get initial velocity: unknown type"
);
64
return
amrex::XDim3
{0.0, 0.0, 0.0};
65
}
66
}
67
}
68
};
69
70
#endif
//WARPX_GET_VELOCITY_H_
AMREX_GPU_HOST_DEVICE
#define AMREX_GPU_HOST_DEVICE
VelocityProperties.H
VelocityInitType
VelocityInitType
Definition
VelocityProperties.H:16
VelParserFunctionVector
@ VelParserFunctionVector
Definition
VelocityProperties.H:16
VelConstantVector
@ VelConstantVector
Definition
VelocityProperties.H:16
amrex::Real
amrex_real Real
amrex::Abort
void Abort(const std::string &msg)
GetVelocityVector::m_uz_mean
amrex::Real m_uz_mean
Definition
GetVelocity.H:26
GetVelocityVector::operator()
AMREX_GPU_HOST_DEVICE amrex::XDim3 operator()(amrex::Real const x, amrex::Real const y, amrex::Real const z) const noexcept
Functor call. Returns the value of velocity at the location (x,y,z).
Definition
GetVelocity.H:49
GetVelocityVector::m_type
VelocityInitType m_type
Definition
GetVelocity.H:23
GetVelocityVector::m_uy_mean
amrex::Real m_uy_mean
Definition
GetVelocity.H:26
GetVelocityVector::m_ux_mean
amrex::Real m_ux_mean
Definition
GetVelocity.H:26
GetVelocityVector::m_uz_mean_parser
amrex::ParserExecutor< 3 > m_uz_mean_parser
Definition
GetVelocity.H:28
GetVelocityVector::m_uy_mean_parser
amrex::ParserExecutor< 3 > m_uy_mean_parser
Definition
GetVelocity.H:28
GetVelocityVector::m_ux_mean_parser
amrex::ParserExecutor< 3 > m_ux_mean_parser
Definition
GetVelocity.H:28
GetVelocityVector::GetVelocityVector
GetVelocityVector(VelocityProperties const &vel) noexcept
Construct the functor with information provided by vel.
Definition
GetVelocity.cpp:10
VelocityProperties
Struct to store velocity properties, for use in momentum initialization.
Definition
VelocityProperties.H:26
amrex::ParserExecutor
amrex::XDim3
Generated by
1.17.0