SPH
Galaxy.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "common/ForwardDecl.h"
5 
7 
8 class IGravity;
9 class UniformRng;
10 
11 enum class GalaxySettingsId {
17  DISK_MASS,
19 
22  HALO_GAMMA,
24  HALO_MASS,
25 
29  BULGE_MASS,
30 
32 };
33 
35 
36 namespace Galaxy {
37 
38 enum class PartEnum {
39  DISK,
40  HALO,
41  BULGE,
42 };
43 
44 Storage generateDisk(UniformRng& rng, const GalaxySettings& settings);
45 
46 Storage generateHalo(UniformRng& rng, const GalaxySettings& settings);
47 
48 Storage generateBulge(UniformRng& rng, const GalaxySettings& settings);
49 
52  virtual void onPart(const Storage& storage, const Size partId, const Size numParts) const = 0;
53 };
54 
56  virtual void onPart(const Storage& UNUSED(storage),
57  const Size UNUSED(partId),
58  const Size UNUSED(numParts)) const override {}
59 };
60 
61 Storage generateIc(const RunSettings& globals,
62  const GalaxySettings& settings,
63  const IProgressCallbacks& callbacks);
64 
65 } // namespace Galaxy
66 
NAMESPACE_SPH_BEGIN
Definition: BarnesHut.cpp:13
GalaxySettingsId
Definition: Galaxy.h:11
uint32_t Size
Integral type used to index arrays (by default).
Definition: Globals.h:16
#define UNUSED(x)
Definition: Object.h:37
#define NAMESPACE_SPH_END
Definition: Object.h:12
Basic vector algebra. Computations are accelerated using SIMD.
Interface for computing gravitational interactions of particles.
Definition: IGravity.h:14
Container storing all quantities used within the simulations.
Definition: Storage.h:230
Random number generator with uniform distribution.
Definition: Rng.h:16
Definition: Galaxy.h:36
Storage generateBulge(UniformRng &rng, const GalaxySettings &settings)
Definition: Galaxy.cpp:174
Storage generateDisk(UniformRng &rng, const GalaxySettings &settings)
Definition: Galaxy.cpp:96
Storage generateHalo(UniformRng &rng, const GalaxySettings &settings)
Definition: Galaxy.cpp:141
PartEnum
Definition: Galaxy.h:38
Storage generateIc(const RunSettings &globals, const GalaxySettings &settings, const IProgressCallbacks &callbacks)
Definition: Galaxy.cpp:422
virtual void onPart(const Storage &storage, const Size partId, const Size numParts) const =0
Called when computing new part of the galaxy (particle positions or velocities).
virtual void onPart(const Storage &UNUSED(storage), const Size UNUSED(partId), const Size UNUSED(numParts)) const override
Definition: Galaxy.h:56
Base class for all polymorphic objects.
Definition: Object.h:88