milupHPC documentation
  • include
Classes
miluphpc.h File Reference

Right-hand-side implementation and CUDA kernel execution via wrapper functions. More...

#include "particle_handler.h"
#include "subdomain_key_tree/tree_handler.h"
#include "subdomain_key_tree/subdomain_handler.h"
#include "device_rhs.cuh"
#include "cuda_utils/cuda_utilities.cuh"
#include "utils/logger.h"
#include "utils/timer.h"
#include "materials/material_handler.h"
#include "helper_handler.h"
#include "gravity/gravity.cuh"
#include "sph/sph.cuh"
#include "cuda_utils/cuda_runtime.h"
#include "utils/cxxopts.h"
#include "utils/h5profiler.h"
#include "sph/kernel.cuh"
#include "sph/kernel_handler.cuh"
#include "sph/density.cuh"
#include "sph/pressure.cuh"
#include "sph/internal_forces.cuh"
#include "sph/soundspeed.cuh"
#include "simulation_time_handler.h"
#include "processing/kernels.cuh"
#include <iostream>
#include <stdio.h>
#include <cuda.h>
#include <climits>
#include <algorithm>
#include <cmath>
#include <utility>
#include <set>
#include <fstream>
#include <iomanip>
#include <random>
#include <boost/mpi/collectives/all_gatherv.hpp>
#include <highfive/H5File.hpp>
#include <highfive/H5DataSpace.hpp>
#include <highfive/H5DataSet.hpp>
+ Include dependency graph for miluphpc.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Miluphpc
 MilupHPC class. More...
 

Detailed Description

Right-hand-side implementation and CUDA kernel execution via wrapper functions.

Abstract base class for integrator classes implementing the right-hand-side via modular functions for different parts of the simulation.

Since dynamic memory allocation and access to heap objects in GPUs are usually suboptimal, an array-based data structure is used to store the (pseudo-)particle information as well as the tree and allows for efficient cache alignment. Consequently, array indices are used instead of pointers to constitute the tree out of the tree nodes, whereas "-1" represents a null pointer and "-2" is used for locking nodes. For this purpose an array with the minimum length \( 2^{d} \cdot (M - N) \) with dimensionality \( d \) and number of cells \( (M -N) \) is needed to store the children. The \( i \)-th child of node \( c \) can therefore be accessed via index \( 2^d \cdot c + i \).

Author
Michael Staneker
Bug:
no known bugs

Definition in file miluphpc.h.


milupHPC - include/miluphpc.h File Reference
Generated on Wed Aug 31 2022 12:16:53 by Doxygen 1.9.3