SPHinXsys  alpha version
sph_system.h
Go to the documentation of this file.
1 
8 #ifndef SPH_SYSTEM_H
9 #define SPH_SYSTEM_H
10 
11 #define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
12 
13 #define TBB_PREVIEW_GLOBAL_CONTROL 1
14 #include <tbb/global_control.h>
15 #ifdef BOOST_AVAILABLE
16 #include "boost/program_options.hpp"
17 namespace po = boost::program_options;
18 #endif
19 
20 #include "base_data_package.h"
21 #include "sph_data_containers.h"
22 
23 #include <thread>
24 #include <fstream>
26 #ifdef __APPLE__
27 #include <boost/filesystem.hpp>
28 namespace fs = boost::filesystem;
29 #else
30 #include <experimental/filesystem>
31 namespace fs = std::experimental::filesystem;
32 #endif
33 
34 namespace SPH
35 {
39  class SPHBody;
40  class InOutput;
41  class ComplexShape;
46  class SPHSystem
47  {
48  public:
49  SPHSystem(BoundingBox system_domain_bounds, Real resolution_ref,
50  size_t number_of_threads = std::thread::hardware_concurrency());
51  virtual ~SPHSystem(){};
52 
55  tbb::global_control tbb_global_control_;
58  size_t restart_step_;
66  SolidBodyVector solid_bodies_;
68  void initializeSystemCellLinkedLists();
69  void initializeSystemConfigurations();
70  Real getSmallestTimeStepAmongSolidBodies(Real CFL = 0.6);
71 #ifdef BOOST_AVAILABLE
72  void handleCommandlineOptions(int ac, char *av[]);
73 #endif
74  };
75 }
76 #endif // SPH_SYSTEM_H
BoundingBox system_domain_bounds_
Definition: sph_system.h:51
tbb::global_control tbb_global_control_
Definition: sph_system.h:55
SPHBodyVector observation_bodies_
Definition: sph_system.h:64
Real resolution_ref_
Definition: sph_system.h:54
SPHBodyVector sph_bodies_
Definition: sph_system.h:63
InOutput * in_output_
Definition: sph_system.h:57
bool run_particle_relaxation_
Definition: sph_system.h:59
SPHBodyVector real_bodies_
Definition: sph_system.h:65
StdVec< SPHBody * > SPHBodyVector
Definition: sph_data_containers.h:30
bool reload_particles_
Definition: sph_system.h:60
bool generate_regression_data_
Definition: sph_system.h:61
Set up of basic data structure.
SolidBodyVector solid_bodies_
Definition: sph_system.h:66
The base class which defines folders for output, restart and particle reload folders.
Definition: in_output.h:65
The SPH system managing objects in the system level.
Definition: sph_system.h:46
size_t restart_step_
Definition: sph_system.h:58
Definition: solid_body_supplementary.cpp:9