Shamrock
2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
shammodels
sph
include
shammodels
sph
modules
AnalysisSodTube.hpp
Go to the documentation of this file.
1
// -------------------------------------------------------//
2
//
3
// SHAMROCK code for hydrodynamics
4
// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5
// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6
// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7
//
8
// -------------------------------------------------------//
9
10
#pragma once
11
19
#include "
shambackends/typeAliasVec.hpp
"
20
#include "
shambackends/vec.hpp
"
21
#include "
shammodels/sph/SolverConfig.hpp
"
22
#include "
shammodels/sph/modules/SolverStorage.hpp
"
23
#include "
shamphys/SodTube.hpp
"
24
#include "
shamrock/scheduler/ShamrockCtx.hpp
"
25
26
namespace
shammodels::sph::modules
{
27
28
template
<
class
Tvec,
template
<
class
>
class
SPHKernel>
29
class
AnalysisSodTube
{
30
public
:
31
using
Tscal = shambase::VecComponent<Tvec>;
32
static
constexpr
u32
dim =
shambase::VectorProperties<Tvec>::dimension
;
33
using
Kernel = SPHKernel<Tscal>;
34
35
using
Config
=
SolverConfig<Tvec, SPHKernel>
;
36
using
Storage
=
SolverStorage<Tvec, u32>
;
37
38
ShamrockCtx
&context;
39
Config
&solver_config;
40
Storage
&storage;
41
42
shamphys::SodTube
solution;
43
Tvec direction;
44
Tscal time_val;
45
Tscal x_ref;
// shock centered on x_ref
46
Tscal x_min, x_max;
// check only between [x_min, x_max ]
47
48
AnalysisSodTube
(
49
ShamrockCtx
&context,
50
Config
&solver_config,
51
Storage
&storage,
52
shamphys::SodTube
&solution,
53
Tvec direction,
54
Tscal time_val,
55
Tscal x_ref,
56
Tscal x_min,
57
Tscal x_max)
58
: context(context), solver_config(solver_config), storage(storage), solution(solution),
59
direction(direction), time_val(time_val), x_ref(x_ref), x_min(x_min), x_max(x_max) {}
60
61
struct
field_val
{
62
Tscal rho;
63
Tvec v;
64
Tscal P;
65
};
66
67
field_val
compute_L2_dist();
68
69
private
:
70
inline
PatchScheduler
&scheduler() {
return
shambase::get_check_ref
(context.sched); }
71
};
72
73
}
// namespace shammodels::sph::modules
ShamrockCtx.hpp
SodTube.hpp
u32
std::uint32_t u32
32 bit unsigned integer
Definition
aliases_int.hpp:27
PatchScheduler
The MPI scheduler.
Definition
PatchScheduler.hpp:85
ShamrockCtx
Definition
ShamrockCtx.hpp:42
shammodels::sph::SolverStorage
Definition
SolverStorage.hpp:48
shammodels::sph::modules::AnalysisSodTube
Definition
AnalysisSodTube.hpp:29
shamphys::SodTube
Definition
SodTube.hpp:22
shambase::get_check_ref
T & get_check_ref(const std::unique_ptr< T > &ptr, SourceLocation loc=SourceLocation())
Takes a std::unique_ptr and returns a reference to the object it holds. It throws a std::runtime_erro...
Definition
memory.hpp:110
shammodels::sph::modules
namespace for the sph model modules
Definition
AnalysisAngularMomentum.hpp:28
SolverConfig.hpp
SolverStorage.hpp
sham::VectorProperties
Definition
vec.hpp:25
shammodels::sph::SolverConfig
The configuration for a sph solver.
Definition
SolverConfig.hpp:272
shammodels::sph::modules::AnalysisSodTube::field_val
Definition
AnalysisSodTube.hpp:61
typeAliasVec.hpp
vec.hpp
Generated on Wed May 13 2026 13:21:49 for Shamrock by
1.9.8