Shamrock
2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
shammodels
zeus
include
shammodels
zeus
modules
SolverStorage.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 "
shambase/StorageComponent.hpp
"
20
#include "
shambase/stacktrace.hpp
"
21
#include "
shambackends/vec.hpp
"
22
#include "
shammodels/zeus/GhostZoneData.hpp
"
23
#include "
shammodels/zeus/NeighFaceList.hpp
"
24
#include "
shamrock/scheduler/ComputeField.hpp
"
25
#include "
shamrock/scheduler/InterfacesUtility.hpp
"
26
#include "
shamrock/scheduler/SerialPatchTree.hpp
"
27
#include "
shamrock/scheduler/ShamrockCtx.hpp
"
28
#include "
shamsys/legacy/log.hpp
"
29
#include "
shamtree/RadixTree.hpp
"
30
#include "
shamtree/TreeTraversalCache.hpp
"
31
namespace
shammodels::zeus
{
32
33
template
<
class
T>
34
using
Component =
shambase::StorageComponent<T>
;
35
36
template
<
class
Tvec,
class
Tgr
id
Vec,
class
Tmorton>
37
class
SolverStorage
{
38
public
:
39
using
Tscal = shambase::VecComponent<Tvec>;
40
using
Tgridscal = shambase::VecComponent<TgridVec>;
41
static
constexpr
u32
dim =
shambase::VectorProperties<Tvec>::dimension
;
42
43
using
RTree
=
RadixTree<Tmorton, TgridVec>
;
44
45
Component<SerialPatchTree<TgridVec>
> serial_patch_tree;
46
47
Component<GhostZonesData<Tvec, TgridVec>
> ghost_zone_infos;
48
49
Component<std::shared_ptr<shamrock::patch::PatchDataLayerLayout>
> ghost_layout;
50
Component<std::shared_ptr<shamrock::patch::PatchDataLayerLayout>
> ghost_layout_Q;
51
52
Component<shambase::DistributedData<shamrock::MergedPatchData>
> merged_patchdata_ghost;
53
Component<shambase::DistributedData<shamrock::MergedPatchData>
> merged_patchdata_ghost_Q;
54
Component<shambase::DistributedData<shammath::AABB<TgridVec>
>> merge_patch_bounds;
55
Component<shambase::DistributedData<RTree>
> trees;
56
57
Component<shamrock::tree::ObjectCacheHandler>
neighbors_cache;
58
59
Component<shamrock::ComputeField<Tscal>
> pressure;
60
71
Component<shambase::DistributedData<sycl::buffer<u8>
>>
face_normals_lookup
;
72
73
Component<shambase::DistributedData<NeighFaceList<Tvec>
>> face_lists;
74
75
Component<shamrock::ComputeField<Tvec>
> vel_n;
76
Component<shamrock::ComputeField<Tvec>
> vel_n_xp;
77
Component<shamrock::ComputeField<Tvec>
> vel_n_yp;
78
Component<shamrock::ComputeField<Tvec>
> vel_n_zp;
79
80
Component<shamrock::ComputeField<Tscal>
> rho_n_xm;
81
Component<shamrock::ComputeField<Tscal>
> rho_n_ym;
82
Component<shamrock::ComputeField<Tscal>
> rho_n_zm;
83
84
Component<shamrock::ComputeField<Tscal>
> pres_n_xm;
85
Component<shamrock::ComputeField<Tscal>
> pres_n_ym;
86
Component<shamrock::ComputeField<Tscal>
> pres_n_zm;
87
88
Component<shamrock::ComputeField<Tvec>
> q_AV_n_xm;
89
Component<shamrock::ComputeField<Tvec>
> q_AV_n_ym;
90
Component<shamrock::ComputeField<Tvec>
> q_AV_n_zm;
91
92
Component<shamrock::ComputeField<Tvec>
> forces;
93
94
Component<shamrock::ComputeField<Tvec>
> q_AV;
95
Component<shamrock::ComputeField<Tscal>
> div_v_n;
96
97
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Q;
98
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> a_x;
99
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> a_y;
100
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> a_z;
101
102
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Q_xm;
103
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Q_ym;
104
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Q_zm;
105
106
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Qstar_x;
107
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Qstar_y;
108
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Qstar_z;
109
110
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_x;
111
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_y;
112
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_z;
113
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_xp;
114
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_yp;
115
Component<shamrock::ComputeField<sycl::vec<Tscal, 8>
>> Flux_zp;
116
121
Component<shamrock::ComputeField<Tvec>
>
gradu
;
122
123
struct
Timings
{
124
f64
interface
= 0;
125
f64
neighbors = 0;
126
f64
io = 0;
127
129
void
reset
() { *
this
= {}; }
130
} timings_details;
131
};
132
133
}
// namespace shammodels::zeus
ComputeField.hpp
InterfacesUtility.hpp
NeighFaceList.hpp
RadixTree.hpp
SerialPatchTree.hpp
ShamrockCtx.hpp
StorageComponent.hpp
TreeTraversalCache.hpp
f64
double f64
Alias for double.
Definition
aliases_float.hpp:20
u32
std::uint32_t u32
32 bit unsigned integer
Definition
aliases_int.hpp:27
RadixTree
The radix tree.
Definition
RadixTree.hpp:50
shambase::StorageComponent
Helper class for Storage Module of any solver.
Definition
StorageComponent.hpp:35
shammodels::zeus::SolverStorage
Definition
SolverStorage.hpp:37
shammodels::zeus::SolverStorage::face_normals_lookup
Component< shambase::DistributedData< sycl::buffer< u8 > > > face_normals_lookup
for each face give a lookup table for the normal orientation 0 = x- 1 = x+ 2 = y- 3 = y+ 4 = z- 5 = z...
Definition
SolverStorage.hpp:71
shammodels::zeus::SolverStorage::gradu
Component< shamrock::ComputeField< Tvec > > gradu
derivatives of the velocity layout :
Definition
SolverStorage.hpp:121
log.hpp
shammodels::zeus
namespace for the zeus model
Definition
GhostZoneData.hpp:24
stacktrace.hpp
This file contains the definition for the stacktrace related functionality.
sham::VectorProperties
Definition
vec.hpp:25
shammodels::zeus::SolverStorage::Timings
Definition
SolverStorage.hpp:123
shammodels::zeus::SolverStorage::Timings::reset
void reset()
Reset the timings logged in the storage.
Definition
SolverStorage.hpp:129
vec.hpp
GhostZoneData.hpp
Generated on Wed May 13 2026 13:21:49 for Shamrock by
1.9.8