SPH
Classes | Typedefs | Enumerations | Functions | Variables
Settings.h File Reference

Generic storage and input/output routines of settings. More...

#include "objects/Exceptions.h"
#include "objects/geometry/TracelessTensor.h"
#include "objects/utility/EnumMap.h"
#include "objects/wrappers/ClonePtr.h"
#include "objects/wrappers/Expected.h"
#include "objects/wrappers/Flags.h"
#include "objects/wrappers/Interval.h"
#include "objects/wrappers/Outcome.h"
#include "objects/wrappers/Variant.h"
#include <typeinfo>

Go to the source code of this file.

Classes

struct  EmptySettingsTag
 Tag for initialization of empty settings object. More...
 
struct  EnumWrapper
 Wrapper of an enum. More...
 
class  InvalidSettingsAccess
 Exception thrown on invalid access to entries of a Settings object. More...
 
class  Settings< TEnum >
 Generic object containing various settings and parameters of the run. More...
 
class  SettingsIterator< TEnum >
 Iterator useful for iterating over all entries in the settings. More...
 
struct  SettingsIterator< TEnum >::IteratorValue
 

Typedefs

using RunSettings = Settings< RunSettingsId >
 
using BodySettings = Settings< BodySettingsId >
 

Enumerations

enum class  KernelEnum {
  CUBIC_SPLINE , FOURTH_ORDER_SPLINE , GAUSSIAN , TRIANGLE ,
  CORE_TRIANGLE , THOMAS_COUCHMAN , WENDLAND_C2 , WENDLAND_C4 ,
  WENDLAND_C6
}
 
enum class  TimesteppingEnum {
  EULER_EXPLICIT , LEAP_FROG , RUNGE_KUTTA , PREDICTOR_CORRECTOR ,
  MODIFIED_MIDPOINT , BULIRSCH_STOER
}
 
enum class  TimeStepCriterionEnum {
  COURANT = 1 << 1 , DERIVATIVES = 1 << 2 , ACCELERATION = 1 << 3 , DIVERGENCE = 1 << 4 ,
  ALL = COURANT | DERIVATIVES | ACCELERATION | DIVERGENCE
}
 
enum class  FinderEnum {
  BRUTE_FORCE , KD_TREE , OCTREE , LINKED_LIST ,
  UNIFORM_GRID , HASH_MAP
}
 
enum class  BoundaryEnum {
  NONE , FROZEN_PARTICLES , GHOST_PARTICLES , FIXED_PARTICLES ,
  WIND_TUNNEL , PERIODIC , SYMMETRIC , KILL_ESCAPERS ,
  PROJECT_1D
}
 
enum class  DomainEnum {
  NONE , SPHERICAL , ELLIPSOIDAL , BLOCK ,
  CYLINDER , GAUSSIAN_SPHERE , HALF_SPACE
}
 
enum class  ForceEnum {
  PRESSURE = 1 << 0 , SOLID_STRESS = 1 << 1 , NAVIER_STOKES = 1 << 2 , INTERNAL_FRICTION = 1 << 3 ,
  INERTIAL = 1 << 4 , SELF_GRAVITY = 1 << 5 , SURFACE_TENSION = 1 << 6
}
 
enum class  ArtificialViscosityEnum { NONE , STANDARD , RIEMANN , MORRIS_MONAGHAN }
 
enum class  SolverEnum {
  SYMMETRIC_SOLVER , ASYMMETRIC_SOLVER , SUMMATION_SOLVER , ELASTIC_DEFORMATION_SOLVER ,
  DENSITY_INDEPENDENT , ENERGY_CONSERVING_SOLVER , SIMPLE_SOLVER
}
 
enum class  ContinuityEnum { STANDARD , SUM_ONLY_UNDAMAGED , DAMAGED_DECREASE_BULK_DENSITY }
 
enum class  DiscretizationEnum { STANDARD , BENZ_ASPHAUG }
 
enum class  YieldingEnum { NONE , ELASTIC , VON_MISES , DRUCKER_PRAGER }
 
enum class  FractureEnum { NONE , SCALAR_GRADY_KIPP , TENSOR_GRADY_KIPP }
 
enum class  SmoothingLengthEnum { CONTINUITY_EQUATION = 1 << 1 , SOUND_SPEED_ENFORCING = 1 << 2 }
 
enum class  SignalSpeedEnum { PRESSURE_DIFFERENCE , VELOCITY_DIFFERENCE }
 
enum class  GravityEnum { SPHERICAL , BRUTE_FORCE , BARNES_HUT }
 
enum class  GravityKernelEnum { POINT_PARTICLES , SPH_KERNEL , SOLID_SPHERES }
 
enum class  CollisionHandlerEnum { NONE , PERFECT_MERGING , ELASTIC_BOUNCE , MERGE_OR_BOUNCE }
 
enum class  OverlapEnum {
  NONE , FORCE_MERGE , REPEL , REPEL_OR_MERGE ,
  INTERNAL_BOUNCE , PASS_OR_MERGE
}
 
enum class  LoggerEnum { NONE , STD_OUT , FILE }
 
enum class  IoEnum {
  NONE , TEXT_FILE , GNUPLOT_OUTPUT , BINARY_FILE ,
  COMPRESSED_FILE , VTK_FILE , HDF5_FILE , MPCORP_FILE ,
  PKDGRAV_INPUT
}
 
enum class  IoCapability { INPUT = 1 << 1 , OUTPUT = 1 << 2 }
 
enum class  OutputSpacing { LINEAR , LOGARITHMIC , CUSTOM }
 
enum class  RngEnum { UNIFORM , HALTON , BENZ_ASPHAUG }
 
enum class  UvMapEnum { PLANAR , SPHERICAL }
 
enum class  RunSettingsId {
  RUN_NAME , RUN_COMMENT , RUN_AUTHOR , RUN_EMAIL ,
  RUN_TYPE , RUN_OUTPUT_TYPE , RUN_OUTPUT_INTERVAL , RUN_OUTPUT_SPACING ,
  RUN_OUTPUT_CUSTOM_TIMES , RUN_OUTPUT_FIRST_INDEX , RUN_OUTPUT_NAME , RUN_OUTPUT_PATH ,
  RUN_OUTPUT_QUANTITIES , RUN_THREAD_CNT , RUN_THREAD_GRANULARITY , RUN_LOGGER ,
  RUN_LOGGER_FILE , RUN_LOGGER_VERBOSITY , RUN_VERBOSE_ENABLE , RUN_VERBOSE_NAME ,
  RUN_START_TIME , RUN_END_TIME , RUN_TIMESTEP_CNT , RUN_WALLCLOCK_TIME ,
  RUN_RNG , RUN_RNG_SEED , RUN_DIAGNOSTICS_INTERVAL , SPH_SOLVER_TYPE ,
  SPH_SOLVER_FORCES , SPH_ADAPTIVE_SMOOTHING_LENGTH , SPH_SUMMATION_MAX_ITERATIONS , SPH_SUMMATION_DENSITY_DELTA ,
  SPH_ASYMMETRIC_COMPUTE_RADII_HASH_MAP , SPH_KERNEL , SPH_FINDER , SPH_DISCRETIZATION ,
  SPH_STRAIN_RATE_CORRECTION_TENSOR , SPH_SUM_ONLY_UNDAMAGED , SPH_CONTINUITY_MODE , SPH_PHASE_ANGLE ,
  SPH_NEIGHBOUR_RANGE , SPH_NEIGHBOUR_ENFORCING , SPH_AV_ALPHA , SPH_AV_BETA ,
  SPH_SMOOTHING_LENGTH_MIN , SPH_AV_TYPE , SPH_AV_USE_BALSARA , SPH_AV_BALSARA_STORE ,
  SPH_USE_AC , SPH_AC_ALPHA , SPH_AC_BETA , SPH_AC_SIGNAL_SPEED ,
  SPH_USE_XSPH , SPH_XSPH_EPSILON , SPH_USE_DELTASPH , SPH_DENSITY_DIFFUSION_DELTA ,
  SPH_VELOCITY_DIFFUSION_ALPHA , SPH_AV_USE_STRESS , SPH_AV_STRESS_EXPONENT , SPH_AV_STRESS_FACTOR ,
  SPH_STABILIZATION_DAMPING , SPH_DI_ALPHA , SPH_SCRIPT_ENABLE , SPH_SCRIPT_FILE ,
  SPH_SCRIPT_PERIOD , SPH_SCRIPT_ONESHOT , NBODY_INERTIA_TENSOR , NBODY_MAX_ROTATION_ANGLE ,
  NBODY_AGGREGATES_ENABLE , NBODY_AGGREGATES_SOURCE , GRAVITY_SOLVER , GRAVITY_OPENING_ANGLE ,
  GRAVITY_MULTIPOLE_ORDER , GRAVITY_KERNEL , GRAVITY_CONSTANT , GRAVITY_RECOMPUTATION_PERIOD ,
  COLLISION_HANDLER , COLLISION_OVERLAP , COLLISION_RESTITUTION_NORMAL , COLLISION_RESTITUTION_TANGENT ,
  COLLISION_ALLOWED_OVERLAP , COLLISION_BOUNCE_MERGE_LIMIT , COLLISION_ROTATION_MERGE_LIMIT , SOFT_REPEL_STRENGTH ,
  SOFT_FRICTION_STRENGTH , TIMESTEPPING_INTEGRATOR , TIMESTEPPING_COURANT_NUMBER , TIMESTEPPING_MAX_TIMESTEP ,
  TIMESTEPPING_INITIAL_TIMESTEP , TIMESTEPPING_CRITERION , TIMESTEPPING_DERIVATIVE_FACTOR , TIMESTEPPING_DIVERGENCE_FACTOR ,
  TIMESTEPPING_MEAN_POWER , TIMESTEPPING_MAX_INCREASE , TIMESTEPPING_MIDPOINT_COUNT , TIMESTEPPING_BS_ACCURACY ,
  FRAME_ANGULAR_FREQUENCY , FRAME_CONSTANT_ACCELERATION , FRAME_TIDES_MASS , FRAME_TIDES_POSITION ,
  FINDER_LEAF_SIZE , FINDER_MAX_PARALLEL_DEPTH , DOMAIN_TYPE , DOMAIN_BOUNDARY ,
  DOMAIN_CENTER , DOMAIN_RADIUS , DOMAIN_HEIGHT , DOMAIN_SIZE ,
  DOMAIN_GHOST_MIN_DIST , DOMAIN_FROZEN_DIST , GENERATE_UVWS , UVW_MAPPING
}
 Settings relevant for whole run of the simulation. More...
 
enum class  DistributionEnum {
  HEXAGONAL , CUBIC , RANDOM , DIEHL_ET_AL ,
  STRATIFIED , PARAMETRIZED_SPIRALING , LINEAR
}
 
enum class  EosEnum {
  NONE , IDEAL_GAS , TAIT , MIE_GRUNEISEN ,
  TILLOTSON , MURNAGHAN , SIMPLIFIED_TILLOTSON , ANEOS
}
 
enum class  BodySettingsId {
  EOS = 0 , INITIAL_DISTRIBUTION = 1 , CENTER_PARTICLES = 2 , PARTICLE_SORTING = 3 ,
  DISTRIBUTE_MODE_SPH5 = 4 , DIEHL_STRENGTH = 5 , DIEHL_MAX_DIFFERENCE = 6 , DIEHL_ITERATION_COUNT = 71 ,
  SMOOTHING_LENGTH_ETA = 72 , DENSITY = 7 , DENSITY_RANGE = 8 , DENSITY_MIN = 9 ,
  ENERGY = 10 , ENERGY_RANGE = 11 , ENERGY_MIN = 12 , STRESS_TENSOR = 13 ,
  STRESS_TENSOR_MIN = 14 , DAMAGE = 15 , DAMAGE_RANGE = 16 , DAMAGE_MIN = 17 ,
  ADIABATIC_INDEX = 18 , TAIT_GAMMA = 19 , TAIT_SOUND_SPEED = 20 , BULK_MODULUS = 21 ,
  TILLOTSON_NONLINEAR_B = 22 , TILLOTSON_SMALL_A = 23 , TILLOTSON_SMALL_B = 24 , TILLOTSON_ALPHA = 25 ,
  TILLOTSON_BETA = 26 , TILLOTSON_SUBLIMATION = 27 , TILLOTSON_ENERGY_IV = 28 , TILLOTSON_ENERGY_CV = 29 ,
  GRUNEISEN_GAMMA = 30 , BULK_SOUND_SPEED = 31 , HUGONIOT_SLOPE = 32 , RHEOLOGY_YIELDING = 33 ,
  RHEOLOGY_DAMAGE = 34 , SHEAR_MODULUS = 35 , YOUNG_MODULUS = 36 , ELASTIC_MODULUS = 37 ,
  ELASTICITY_LIMIT = 38 , MELT_ENERGY = 39 , COHESION = 40 , INTERNAL_FRICTION = 41 ,
  DRY_FRICTION = 42 , USE_ACOUSTIC_FLUDIZATION = 43 , OSCILLATION_DECAY_TIME = 44 , OSCILLATION_REGENERATION = 74 ,
  FLUIDIZATION_VISCOSITY = 45 , RAYLEIGH_SOUND_SPEED = 47 , WEIBULL_COEFFICIENT = 48 , WEIBULL_EXPONENT = 49 ,
  WEIBULL_SAMPLE_DISTRIBUTIONS = 66 , DISTENTION = 81 , BULK_VISCOSITY = 50 , SHEAR_VISCOSITY = 51 ,
  DAMPING_COEFFICIENT = 52 , DIFFUSIVITY = 53 , SURFACE_TENSION = 54 , PARTICLE_COUNT = 55 ,
  MIN_PARTICLE_COUNT = 56 , AV_ALPHA = 57 , AV_ALPHA_RANGE = 58 , BULK_POROSITY = 64 ,
  HEAT_CAPACITY = 67 , BODY_SHAPE_TYPE = 59 , BODY_CENTER = 61 , BODY_RADIUS = 68 ,
  BODY_DIMENSIONS = 69 , BODY_HEIGHT = 73 , BODY_SPIN_RATE = 70 , VISUALIZATION_TEXTURE = 80 ,
  IDENTIFIER = 99
}
 Settings of a single body / gas phase / ... More...
 

Functions

template<typename TEnum >
INLINE void checkSettingsAccess (const bool result, const TEnum key)
 
Optional< std::string > getIoExtension (const IoEnum type)
 Returns the file extension associated with given IO type. More...
 
Optional< IoEnumgetIoEnum (const std::string &ext)
 Returns the file type from file extension. More...
 
std::string getIoDescription (const IoEnum type)
 Returns a short description of the file format. More...
 
Flags< IoCapabilitygetIoCapabilities (const IoEnum type)
 Returns the capabilities of given file format. More...
 

Variables

const EmptySettingsTag EMPTY_SETTINGS
 

Detailed Description

Generic storage and input/output routines of settings.

Author
Pavel Sevecek (sevecek at sirrah.troja.mff.cuni.cz)
Date
2016-2021

Definition in file Settings.h.

Typedef Documentation

◆ BodySettings

Definition at line 1622 of file Settings.h.

◆ RunSettings

Definition at line 1618 of file Settings.h.

Enumeration Type Documentation

◆ ArtificialViscosityEnum

Enumerator
NONE 

No artificial viscosity.

STANDARD 

Standard artificial viscosity term by Monaghan (1989).

RIEMANN 

Artificial viscosity term analogous to Riemann solvers by Monaghan (1997)

MORRIS_MONAGHAN 

Time-dependent artificial viscosity by Morris & Monaghan (1997).

Definition at line 683 of file Settings.h.

◆ BodySettingsId

enum BodySettingsId
strong

Settings of a single body / gas phase / ...

Combines material parameters and numerical parameters of the SPH method specific for one body. Values of parameters CANNOT be changed to preserve backward compatibility of serializer. New IDs can be created as needed, parameters no longer needed can be removed.

Enumerator
EOS 

Equation of state for this material, see EosEnum for options.

INITIAL_DISTRIBUTION 

Initial distribution of SPH particles within the domain, see DistributionEnum for options.

CENTER_PARTICLES 

If true, generated particles will be moved so that their center of mass corresponds to the center of selected domain. Note that this will potentially move some particles outside of the domain, which can clash with boundary conditions.

PARTICLE_SORTING 

If true, particles are sorted using Morton code, preserving locality in memory.

DISTRIBUTE_MODE_SPH5 

Turns on 'SPH5 compatibility' mode when generating particle positions. This allows 1-1 comparison of generated arrays, but results in too many generated particles (by about factor 1.4). The option also implies CENTER_PARTICLES.

DIEHL_STRENGTH 

Strength parameter of the Diehl's distribution.

DIEHL_MAX_DIFFERENCE 

Maximum allowed difference between the expected number of particles and the actual number of generated particles. Higher value speed up the generation of particle positions.

DIEHL_ITERATION_COUNT 

Number of iterations of particle repelling.

SMOOTHING_LENGTH_ETA 

Eta-factor between smoothing length and particle concentration (h = eta * n^(-1/d) )

DENSITY 

Density at zero pressure.

DENSITY_RANGE 

Allowed range of density. Densities of all particles all clamped to fit in the range.

DENSITY_MIN 

Estimated minimal value of density. This value is NOT used to clamp densities, but for determining error of timestepping.

ENERGY 

Initial specific internal energy.

ENERGY_RANGE 

Allowed range of specific internal energy.

ENERGY_MIN 

Estimated minimal value of energy used to determine timestepping error.

STRESS_TENSOR 

Initial values of the deviatoric stress tensor.

STRESS_TENSOR_MIN 

Estimated minial value of stress tensor components used to determined timestepping error.

DAMAGE 

Initial damage of the body.

DAMAGE_RANGE 

Allowed range of damage.

DAMAGE_MIN 

Estimate minimal value of damage used to determine timestepping error.

ADIABATIC_INDEX 

Adiabatic index used by some equations of state (such as ideal gas)

TAIT_GAMMA 

Exponent of density, representing a compressibility of a fluid. Used in Tait equation of state.

TAIT_SOUND_SPEED 

Sound speed used in Tait equation of state.

BULK_MODULUS 

Bulk modulus of the material.

TILLOTSON_NONLINEAR_B 

Coefficient B of the nonlinear compressive term in Tillotson equation.

TILLOTSON_SMALL_A 

"Small a" coefficient in Tillotson equation

TILLOTSON_SMALL_B 

"Small b" coefficient in Tillotson equation

TILLOTSON_ALPHA 

Alpha coefficient in expanded phase of Tillotson equation.

TILLOTSON_BETA 

Beta coefficient in expanded phase of Tillotson equation.

TILLOTSON_SUBLIMATION 

Specific sublimation energy.

TILLOTSON_ENERGY_IV 

Specific energy of incipient vaporization.

TILLOTSON_ENERGY_CV 

Specific energy of complete vaporization.

GRUNEISEN_GAMMA 

Gruneisen's gamma paraemter used in Mie-Gruneisen equation of state.

BULK_SOUND_SPEED 

Used in Mie-Gruneisen equations of state.

HUGONIOT_SLOPE 

Linear Hugoniot slope coefficient used in Mie-Gruneisen equation of state.

RHEOLOGY_YIELDING 

Model of stress reducing used within the rheological model.

RHEOLOGY_DAMAGE 

Model of fragmentation used within the rheological model.

SHEAR_MODULUS 

Shear modulus mu (a.k.a Lame's second parameter) of the material.

YOUNG_MODULUS 

Young modulus of the material.

ELASTIC_MODULUS 

Elastic modulus lambda (a.k.a Lame's first parameter) of the material.

ELASTICITY_LIMIT 

Elasticity limit of the von Mises yielding criterion.

MELT_ENERGY 

Melting energy, used for temperature-dependence of the stress tensor.

COHESION 

Cohesion, yield strength at zero pressure.

INTERNAL_FRICTION 

Coefficient of friction for undamaged material.

DRY_FRICTION 

Coefficient of friction for fully damaged material.

USE_ACOUSTIC_FLUDIZATION 

Whether to use the acoustic fludization model.

OSCILLATION_DECAY_TIME 

Characteristic decay time of acoustic oscillations in the material.

OSCILLATION_REGENERATION 

Regeneration efficiency of acoustric oscillations.

FLUIDIZATION_VISCOSITY 

Effective viscosity of acoustic fludizations.

RAYLEIGH_SOUND_SPEED 

Speed of crack growth, in units of local sound speed.

WEIBULL_COEFFICIENT 

Coefficient (multiplier) of the Weibull distribution of flaws.

WEIBULL_EXPONENT 

Exponent of the Weibull distribution of flaws.

WEIBULL_SAMPLE_DISTRIBUTIONS 

Whether to use precomputed distributions for flaw sampling. Otherwise, flaws are sampled using uniform random number generator, which may be prohibitively slow for large particle counts.

DISTENTION 

Initial value of the material distention, used in the P-alpha model.

BULK_VISCOSITY 
SHEAR_VISCOSITY 
DAMPING_COEFFICIENT 
DIFFUSIVITY 
SURFACE_TENSION 

Coefficient of surface tension.

PARTICLE_COUNT 

Number of SPH particles in the body.

MIN_PARTICLE_COUNT 

Minimal number of particles per one body. Used when creating 'sub-bodies' withing one 'parent' body, for example when creating rubble-pile asteroids, ice blocks inside an asteroid, etc. Parameter has no effect for creation of a single monolithic body; the number of particles from PARTICLE_COUNT is used in any case.

AV_ALPHA 

Initial alpha coefficient of the artificial viscosity. This is only used if the coefficient is different for each particle. For constant coefficient shared for all particles, use value from global settings.

AV_ALPHA_RANGE 

Lower and upper bound of the alpha coefficient, used only for time-dependent artificial viscosity.

BULK_POROSITY 

Bulk (macro)porosity of the body.

HEAT_CAPACITY 

Heat capacity at constant pressure,.

BODY_SHAPE_TYPE 
BODY_CENTER 

Center point of the body. Currently used only by StabilizationSolver.

BODY_RADIUS 
BODY_DIMENSIONS 
BODY_HEIGHT 
BODY_SPIN_RATE 
VISUALIZATION_TEXTURE 
IDENTIFIER 

Arbitrary string identifying this material.

Definition at line 1394 of file Settings.h.

◆ BoundaryEnum

enum BoundaryEnum
strong
Enumerator
NONE 

Do not use any boundary conditions (= vacuum conditions)

FROZEN_PARTICLES 

Highest derivatives of all particles close to the boundary are set to zero.

GHOST_PARTICLES 

Create ghosts to keep particles inside domain.

FIXED_PARTICLES 

Creates dummy particles along the boundary.

WIND_TUNNEL 

Extension of Frozen Particles, pushing particles inside the domain and removing them on the other end.

PERIODIC 

Periodic boundary conditions.

SYMMETRIC 

Particles are duplicated along the z=0 plane.

KILL_ESCAPERS 

Removes particles outside the domain.

PROJECT_1D 

Project all movement onto a line, effectivelly reducing the simulation to 1D.

Definition at line 604 of file Settings.h.

◆ CollisionHandlerEnum

enum CollisionHandlerEnum
strong
Enumerator
NONE 

No collision handling.

PERFECT_MERGING 

All collided particles merge, creating larger spherical particles. Particles are merged unconditionally, regardless of their relative velocity or their angular frequencies.

ELASTIC_BOUNCE 

Collided particles bounce with some energy dissipation, specified by the coefficients of restitution. No merging, number of particles remains contant.

MERGE_OR_BOUNCE 

If the relative speed of the collided particles is lower than the escape velocity, the particles are merged, otherwise the particle bounce. To ensure that the particles are always merged, set the COLLISION_MERGE_LIMIT to zero, on the other hand large values make particles more difficult to merge.

Definition at line 808 of file Settings.h.

◆ ContinuityEnum

enum ContinuityEnum
strong
Enumerator
STANDARD 

Normal continuity equation, using velocity divergence computed from all neighbors.

SUM_ONLY_UNDAMAGED 

Computes the velocity divergence using only undamaged neighbors. For fully damaged particle, the standard continuity equation is used instead.

DAMAGED_DECREASE_BULK_DENSITY 

Adds bulk density, evolved using continuity equation like material density; however, when damaged material expands, only the bulk density decreases, the material density is constant. The material density can only grow when it is equal to the bulk density.

Definition at line 721 of file Settings.h.

◆ DiscretizationEnum

enum DiscretizationEnum
strong
Enumerator
STANDARD 

P_i / rho_i^2 + P_j / rho_j^2.

BENZ_ASPHAUG 

(P_i + P_j) / (rho_i rho_j)

Definition at line 735 of file Settings.h.

◆ DistributionEnum

enum DistributionEnum
strong
Enumerator
HEXAGONAL 

Hexagonally close packing.

CUBIC 

Cubic close packing.

RANDOM 

Random distribution of particles.

DIEHL_ET_AL 

Isotropic uniform distribution by Diehl et al. (2012)

STRATIFIED 

Stratified distribution to reduce clustering.

PARAMETRIZED_SPIRALING 

Parametrized spiraling scheme by Saff & Kuijlaars (1997)

LINEAR 

Distributes particles uniformly on line.

Definition at line 1339 of file Settings.h.

◆ DomainEnum

enum DomainEnum
strong
Enumerator
NONE 

No computational domain (can only be used with BoundaryEnum::NONE)

SPHERICAL 

Sphere with given radius.

ELLIPSOIDAL 

Axis-aligned ellipsoid.

BLOCK 

Block with edge sizes given by vector.

CYLINDER 

Cylindrical domain aligned with z axis.

GAUSSIAN_SPHERE 

Gaussian random sphere.

HALF_SPACE 

Half-space z>0.

Definition at line 633 of file Settings.h.

◆ EosEnum

enum EosEnum
strong
Enumerator
NONE 

No equation of state.

IDEAL_GAS 

Equation of state for ideal gas.

TAIT 

Tait equation of state for simulations of liquids.

MIE_GRUNEISEN 

Mie-Gruneisen equation of state.

TILLOTSON 

Tillotson (1962) equation of state.

MURNAGHAN 

Murnaghan equation of state.

SIMPLIFIED_TILLOTSON 

Simplified version of the Tillotson equation of state.

ANEOS 

ANEOS given by look-up table.

Definition at line 1363 of file Settings.h.

◆ FinderEnum

enum FinderEnum
strong
Enumerator
BRUTE_FORCE 

Brute-force search by going through each pair of particles (O(N^2) complexity)

KD_TREE 

Using K-d tree.

OCTREE 

Using octree.

LINKED_LIST 

Using linked list.

UNIFORM_GRID 

Partitioning particles into a grid uniform in space.

HASH_MAP 

Using hash map.

Definition at line 584 of file Settings.h.

◆ ForceEnum

enum ForceEnum
strong

List of forces to compute by the solver. This does not include numerical terms, see ArtificialViscosityEnum.

Enumerator
PRESSURE 

Use force from pressure gradient in the solver.

SOLID_STRESS 

Use force from stress divergence in the model. Must be used together with PRESSURE_GRADIENT. Stress tensor is then evolved in time using Hooke's equation.

NAVIER_STOKES 

Stress tensor for the simulation of fluids. Must be used together with PRESSURE_GRADIENT, cannot be used together with solid stress force.

INTERNAL_FRICTION 

Use internal friction given by the viscosity in the material.

INERTIAL 

Use centrifugal force and Coriolis forces given by angular frequency of the coordinate frame.

SELF_GRAVITY 

Use gravitational force in the model.

SURFACE_TENSION 

Surface force proportional to surface curvature.

Definition at line 658 of file Settings.h.

◆ FractureEnum

enum FractureEnum
strong
Enumerator
NONE 

No fragmentation.

SCALAR_GRADY_KIPP 

Grady-Kipp model of fragmentation using scalar damage.

TENSOR_GRADY_KIPP 

Grady-Kipp model of fragmentation using tensor damage.

Definition at line 757 of file Settings.h.

◆ GravityEnum

enum GravityEnum
strong
Enumerator
SPHERICAL 

Approximated gravity, assuming the matter is a simple homogeneous sphere.

BRUTE_FORCE 

Brute-force summation over all particle pairs (O(N^2) complexity)

BARNES_HUT 

Use Barnes-Hut algorithm, approximating gravity by multipole expansion (up to octupole order)

Definition at line 785 of file Settings.h.

◆ GravityKernelEnum

enum GravityKernelEnum
strong
Enumerator
POINT_PARTICLES 

Point-like particles with zero radius.

SPH_KERNEL 

Use gravity smoothing kernel corresponding to selected SPH kernel.

SOLID_SPHERES 

Use kernel representing gravity of solid spheres. Useful for N-body simulations where overlaps are allowed.

Definition at line 796 of file Settings.h.

◆ IoCapability

enum IoCapability
strong
Enumerator
INPUT 

The format can be used as file input.

OUTPUT 

The format can be used as file output.

Definition at line 906 of file Settings.h.

◆ IoEnum

enum IoEnum
strong
Enumerator
NONE 

No input/output.

TEXT_FILE 

Formatted human-readable text file.

GNUPLOT_OUTPUT 

Extension of text file, additionally executing given gnuplot script, generating a plot from every dump.

BINARY_FILE 

Full binary output file. This data dump is lossless and can be use to restart run from saved snapshot. Stores values, all derivatives and materials of the storage.

COMPRESSED_FILE 

Compressed binary output file, containing only few selected quantities. This is the most convenient format for storing full simulation in high resolution in time.

VTK_FILE 

File format used by Visualization Toolkit (VTK). Useful to view the results in Paraview and other visualization tools.

HDF5_FILE 

File format for storing scientific data. Currently tailored for files generated by the code miluphcuda. Requires to build code with libhdf5.

MPCORP_FILE 

Export from Minor Planet Center Orbit Database.

PKDGRAV_INPUT 

Pkdgrav input file.

Definition at line 859 of file Settings.h.

◆ KernelEnum

enum KernelEnum
strong
Enumerator
CUBIC_SPLINE 

M4 B-spline (piecewise cubic polynomial)

FOURTH_ORDER_SPLINE 

M5 B-spline (piecewise 4th-order polynomial)

GAUSSIAN 

Gaussian function.

TRIANGLE 

Simple triangle (piecewise linear) kernel.

CORE_TRIANGLE 

Core Triangle (CT) kernel by Read et al. (2010)

THOMAS_COUCHMAN 

Modification of the standard M4 B-spline kernel, used to avoid particle clustering.

WENDLAND_C2 

Wendland kernel C2.

WENDLAND_C4 

Wendland kernel C4.

WENDLAND_C6 

Wendland kernel C6.

Definition at line 518 of file Settings.h.

◆ LoggerEnum

enum LoggerEnum
strong
Enumerator
NONE 

Do not log anything.

STD_OUT 

Print log to standard output.

FILE 

Print log to file.

Todo:
print using callback to gui application

Definition at line 846 of file Settings.h.

◆ OutputSpacing

enum OutputSpacing
strong
Enumerator
LINEAR 

Constant time between consecutive output times.

LOGARITHMIC 

Constant ratio between consecutive output times.

CUSTOM 

User-defined list of output times.

Definition at line 918 of file Settings.h.

◆ OverlapEnum

enum OverlapEnum
strong
Enumerator
NONE 

All overlaps are ignored.

FORCE_MERGE 

Overlapping particles are merged.

REPEL 

Particles are shifted until no overlap happens.

REPEL_OR_MERGE 

Particles are either repeled (and bounced) or merged, based on the ratio of their relative velocity to the escape velocity (similar to MERGE_OR_BOUNCE).

INTERNAL_BOUNCE 

Particles are allowed to overlap and they bounce if moving towards each other.

PASS_OR_MERGE 

Definition at line 826 of file Settings.h.

◆ RngEnum

enum RngEnum
strong
Enumerator
UNIFORM 

Mersenne Twister PRNG from Standard library.

HALTON 

Halton QRNG.

BENZ_ASPHAUG 

Same RNG as used in SPH5, used for 1-1 comparison.

Definition at line 929 of file Settings.h.

◆ RunSettingsId

enum RunSettingsId
strong

Settings relevant for whole run of the simulation.

Enumerator
RUN_NAME 

User-specified name of the run, used in some output files.

RUN_COMMENT 

User-specified comment.

RUN_AUTHOR 

Name of the person running the simulation.

RUN_EMAIL 

E-mail of the person running the simulation.

RUN_TYPE 

Specifies the type of the simulation. Does not have to be specified to run the simulation; this information is saved in output files and taken into account by visualization tools, for example.

RUN_OUTPUT_TYPE 

Selected format of the output file, see IoEnum.

RUN_OUTPUT_INTERVAL 

Time interval of dumping data to disk.

RUN_OUTPUT_SPACING 

Type of output spacing in time, see enum OutputSpacing.

RUN_OUTPUT_CUSTOM_TIMES 

List of comma-separated output times, used when RUN_OUTPUT_SPACING is set to CUSTOM.

RUN_OUTPUT_FIRST_INDEX 

Index of the first generated output file. Might not be zero if the simulation is resumed.

RUN_OUTPUT_NAME 

File name of the output file (including extension), where d is a placeholder for output number.

RUN_OUTPUT_PATH 

Path where all output files (dumps, logs, ...) will be written.

RUN_OUTPUT_QUANTITIES 

List of quantities to write to text output. Binary output always stores all quantitites.

RUN_THREAD_CNT 

Number of threads used by the code. If 0, all available threads are used.

RUN_THREAD_GRANULARITY 

Number of particles processed by one thread in a single batch. Lower number can help to distribute tasks between threads more evenly, higher number means faster processing of particles within single thread.

RUN_LOGGER 

Selected logger of a run, see LoggerEnum.

RUN_LOGGER_FILE 

Path of a file where the log is printed, used only when selected logger is LoggerEnum::FILE.

RUN_LOGGER_VERBOSITY 

Number specifying log verbosity. Can be between 0 and 3, going from least to most verbose.

RUN_VERBOSE_ENABLE 

Enables verbose log of a simulation.

RUN_VERBOSE_NAME 

Path of a file where the verbose log is printed.

RUN_START_TIME 

Starting time of the simulation in seconds. This is usually 0, although it can be set to a non-zero for simulations resumed from saved state.

RUN_END_TIME 

End time of the simulation in seconds. For new simulations (not resumed from saved state), this corresponds to the total duration of the simulation.

RUN_TIMESTEP_CNT 

Maximum number of timesteps after which run ends. 0 means run duration is not limited by number of timesteps. Note that if adaptive timestepping is used, run can end at different times for different initial conditions. This condition should only be used for debugging purposes.

RUN_WALLCLOCK_TIME 

Maximum duration of the run in milliseconds, measured in real-world time. 0 means run duration is not limited by this value.

RUN_RNG 

Selected random-number generator used within the run.

RUN_RNG_SEED 

Seed for the random-number generator.

RUN_DIAGNOSTICS_INTERVAL 

Time period (in run time) of running diagnostics of the run. 0 means the diagnostics are run every time step.

SPH_SOLVER_TYPE 

Selected solver for computing derivatives of physical variables.

SPH_SOLVER_FORCES 

List of forces to compute by the solver.

SPH_ADAPTIVE_SMOOTHING_LENGTH 

Solution for evolutions of the smoothing length.

SPH_SUMMATION_MAX_ITERATIONS 

Maximum number of iterations for self-consistent density computation of summation solver.

SPH_SUMMATION_DENSITY_DELTA 

Target relative difference of density in successive iterations. Density computation in summation solver is ended when the density changes by less than the delta or the iteration number exceeds SOLVER_SUMMATION_MAX_ITERATIONS.

SPH_ASYMMETRIC_COMPUTE_RADII_HASH_MAP 

If true, the SPH solver computes a hash map connecting position in space with required search radius. Otherwise, the radius is determined from the maximal smoothing length in the simulation. Used only by the AsymmetricSolver.

SPH_KERNEL 

Index of SPH Kernel, see KernelEnum.

SPH_FINDER 

Structure for searching nearest neighbours of particles.

SPH_DISCRETIZATION 

Specifies a discretization of SPH equations; see DiscretizationEnum.

SPH_STRAIN_RATE_CORRECTION_TENSOR 

If true, the kernel gradient for evaluation of strain rate will be corrected for each particle by an inversion of an SPH-discretized identity matrix. This generally improves stability of the run and conservation of total angular momentum, but comes at the cost of higher memory consumption and slower evaluation of SPH derivatives.

SPH_SUM_ONLY_UNDAMAGED 

If true, derivatives with flag DerivativeFlag::SUM_ONLY_UNDAMAGED will evaluate only undamaged particles belonging to the same body. Otherwise, all particle are evaluated, regardless of derivative flags.

SPH_CONTINUITY_MODE 

Specifies how the density is evolved, see ContinuityEnum.

SPH_PHASE_ANGLE 

Evolve particle phase angle.

SPH_NEIGHBOUR_RANGE 

Minimum and maximum number of neighbours SPH solver tries to enforce. Note that the solver cannot guarantee the actual number of neighbours will be within the range.

SPH_NEIGHBOUR_ENFORCING 

Strength of enforcing neighbour number. Higher value makes enforcing more strict (number of neighbours gets into required range faster), but also makes code less stable. Can be a negative number, -INFTY technically disables enforcing altogether.

SPH_AV_ALPHA 

Artificial viscosity alpha coefficient.

SPH_AV_BETA 

Artificial viscosity beta coefficient.

SPH_SMOOTHING_LENGTH_MIN 

Minimal value of smoothing length.

SPH_AV_TYPE 

Type of used artificial viscosity.

SPH_AV_USE_BALSARA 

Whether to use balsara switch for computing artificial viscosity dissipation. If no artificial viscosity is used, the value has no effect.

SPH_AV_BALSARA_STORE 

If true, Balsara factors will be saved as quantity AV_BALSARA. Mainly for debugging purposes.

SPH_USE_AC 

Enables the artificial thermal conductivity term.

SPH_AC_ALPHA 

Artificial conductivity alpha coefficient.

SPH_AC_BETA 

Artificial conductivity beta coefficient.

SPH_AC_SIGNAL_SPEED 

Type of the signal speed used by artificial conductivity.

SPH_USE_XSPH 

Turn on the XSPH correction.

SPH_XSPH_EPSILON 

Epsilon-factor of XSPH correction (Monaghan, 1992). Value 0 turns off the correction, epsilon shouldn't be larger than 1.

SPH_USE_DELTASPH 

Turn on the delta-SPH correction.

SPH_DENSITY_DIFFUSION_DELTA 

Delta-coefficient of the delta-SPH modification, see Marrone et al. 2011.

SPH_VELOCITY_DIFFUSION_ALPHA 

Alpha-coefficient of the delta-SPH modification.

SPH_AV_USE_STRESS 

Whether to use artificial stress.

SPH_AV_STRESS_EXPONENT 

Weighting function exponent n in artificial stress term.

SPH_AV_STRESS_FACTOR 

Multiplicative factor of the artificial stress term (= strength of the viscosity)

SPH_STABILIZATION_DAMPING 

Damping coefficient of particle velocities, mainly intended for setting up initial conditions. Higher values damp the oscillation/instabilities faster, but may converge to incorrect (unstable) configuration. Lower values lead to (slower) convergence to correct (stable) configuration, but it may cause body dissintegration if the initial conditions are to far from the stable solution. Zero disables the damping.

SPH_DI_ALPHA 

Alpha parameter of the density-independent solver.

SPH_SCRIPT_ENABLE 

Enables or disables scripted term.

SPH_SCRIPT_FILE 

Path of an arbitrary ChaiScript script executed each timestep.

SPH_SCRIPT_PERIOD 

Period or time point to execute the script. Zero means the time step is executed immediately or every time step, depending on the value of SPH_SCRIPT_ONESHOT.

SPH_SCRIPT_ONESHOT 

Whether to execute the script only once or periodically.

NBODY_INERTIA_TENSOR 

If true, all particles have also a moment of inertia, representing a non-homogeneous mass distribution. Otherwise, particles are spherical with inertia tensor I = 2/5 mr^2

NBODY_MAX_ROTATION_ANGLE 
Todo:
NBODY_AGGREGATES_ENABLE 

If true, colliding particles form aggregates, which then move and rotate as rigid bodies. There are no collisions between particles belonging to the same aggregate, only collisions of different aggregates need to be handled. Note that enabling aggregates overrides handlers of collisions and overlaps.

NBODY_AGGREGATES_SOURCE 

Specifies the initial aggregates used in the simulation. See AggregateEnum.

GRAVITY_SOLVER 

Algorithm to compute gravitational acceleration.

GRAVITY_OPENING_ANGLE 

Opening angle Theta for multipole approximation of gravity.

GRAVITY_MULTIPOLE_ORDER 

Order of multipole expansion.

GRAVITY_KERNEL 

Gravity smoothing kernel.

GRAVITY_CONSTANT 

Gravitational constant. To be generalized.

GRAVITY_RECOMPUTATION_PERIOD 

Period of gravity evaluation. If zero, gravity is computed every time step, for any positive value, gravitational acceleration is cached for each particle and used each time step until next recomputation.

COLLISION_HANDLER 

Specifies how the collisions of particles should be handler; see CollisionHandlerEnum.

COLLISION_OVERLAP 

Specifies how particle overlaps should be handled.

COLLISION_RESTITUTION_NORMAL 

Coefficient of restitution for normal component (alongside particle direction vector) of velocity. Applicable only for bounce collisions.

COLLISION_RESTITUTION_TANGENT 

Coefficient of restitution for tangent component (perpendicular to particle direction vector) of velocity. Applicable only for bounce collisions.

COLLISION_ALLOWED_OVERLAP 

Relative particle overlap (0 for particles in contact, 1 for particles lying on top of each other) for which the collision is handled as overlap. Used to avoid very small (<EPS) overlaps not being handled as collision due to numerical imprecisions.

COLLISION_BOUNCE_MERGE_LIMIT 

Multiplier of the relative velocity, used when determining whether to merge the collided particles or reject the collision. If zero, particles are always merged. Larger values than 1 can be used to merge only very slowly moving particles.

COLLISION_ROTATION_MERGE_LIMIT 

Parameter analogous to COLLISION_BOUNCE_MERGE_LIMIT, but used for the rotation of the merger. Particles can only be merged if the angular frequency multiplied by this parameter is lower than the breakup frequency. If zero, particles are always merged, values larger than 1 can be used to avoid fast rotators in the simulation.

SOFT_REPEL_STRENGTH 

Magnitude of the repel force for the soft-body solver.

SOFT_FRICTION_STRENGTH 

Magnitude of the friction force for the soft-body solver.

TIMESTEPPING_INTEGRATOR 

Selected timestepping integrator.

TIMESTEPPING_COURANT_NUMBER 

Courant number.

TIMESTEPPING_MAX_TIMESTEP 

Upper limit of the time step. The timestep is guaranteed to never exceed this value for any timestep criterion. The lowest possible timestep is not set, timestep can be any positive value.

TIMESTEPPING_INITIAL_TIMESTEP 

Initial value of time step. If dynamic timestep is disabled, the run will keep the initial timestep for the whole duration. Some timestepping algorithms might not use the initial timestep and directly compute new value of timestep, in which case this parameter has no effect.

TIMESTEPPING_CRITERION 

Criterion used to determine value of time step. More criteria may be compined, in which case the smallest time step of all is selected.

TIMESTEPPING_DERIVATIVE_FACTOR 

Multiplicative factor k for the derivative criterion; dt = k * v / dv.

TIMESTEPPING_DIVERGENCE_FACTOR 

Multiplicative factor for the divergence criterion.

TIMESTEPPING_MEAN_POWER 

Power of the generalized mean, used to compute the final timestep from timesteps of individual particles. Negative infinity means the minimal timestep is used. This value will also set statistics of the restricting particle, namely the particle index and the quantity value and corresponding derivative of the particle; these statistics are not saved for other powers.

TIMESTEPPING_MAX_INCREASE 

Maximum relative increase of a timestep in two subsequent timesteps. Used to 'smooth' the timesteps, as it prevents very fast increase of the time step, especially if the initial time step is very low. Used only by MultiCriterion.

TIMESTEPPING_MIDPOINT_COUNT 

Number of sub-steps in the modified midpoint method.

TIMESTEPPING_BS_ACCURACY 

Required relative accuracy of the Bulirsch-Stoer integrator.

FRAME_ANGULAR_FREQUENCY 

Global rotation of the coordinate system around axis (0, 0, 1) passing through origin. If non-zero, causes non-intertial acceleration.

FRAME_CONSTANT_ACCELERATION 
FRAME_TIDES_MASS 
FRAME_TIDES_POSITION 
FINDER_LEAF_SIZE 

Maximum number of particles in a leaf node.

FINDER_MAX_PARALLEL_DEPTH 

Maximal in a a tree depth to be processed in parallel. While a larger value implies better distribution of work between threads, it also comes up with performance penalty due to scheduling overhead.

DOMAIN_TYPE 

Computational domain, enforced by boundary conditions.

DOMAIN_BOUNDARY 

Type of boundary conditions.

DOMAIN_CENTER 

Center point of the domain.

DOMAIN_RADIUS 

Radius of a spherical and cylindrical domain.

DOMAIN_HEIGHT 

Height of a cylindrical domain.

DOMAIN_SIZE 

(Vector) size of a block domain

DOMAIN_GHOST_MIN_DIST 

Minimal distance between a particle and its ghost, in units of smoothing length.

DOMAIN_FROZEN_DIST 

Distance to the boundary in units of smoothing length under which the particles are frozen.

GENERATE_UVWS 

If true, the mapping coordinates will be computed and saved for all bodies in the simulation.

UVW_MAPPING 

Type of the UV mapping.

Definition at line 949 of file Settings.h.

◆ SignalSpeedEnum

enum SignalSpeedEnum
strong
Enumerator
PRESSURE_DIFFERENCE 

Signal speed given by the absolute value of pressure difference, as in Price (2008)

VELOCITY_DIFFERENCE 

Signal speed given by relative velocity projected to the positive vector, as in Valdarnini (2018),.

Definition at line 777 of file Settings.h.

◆ SmoothingLengthEnum

enum SmoothingLengthEnum
strong
Enumerator
CONTINUITY_EQUATION 

Smoothing length is evolved using continuity equation.

SOUND_SPEED_ENFORCING 

Number of neighbours is kept fixed by adding additional derivatives of smoothing length, scaled by local sound speed

Definition at line 768 of file Settings.h.

◆ SolverEnum

enum SolverEnum
strong
Enumerator
SYMMETRIC_SOLVER 

SPH formulation using symmetrized evaluation of derivatives.

ASYMMETRIC_SOLVER 

Generic solver evaluating all derivatives asymmetrically.

SUMMATION_SOLVER 

Density is obtained by direct summation over nearest SPH particles.

ELASTIC_DEFORMATION_SOLVER 

Special solver used to simulate deformations of perfectly elastic bodies.

DENSITY_INDEPENDENT 

Density independent solver by Saitoh & Makino (2013).

ENERGY_CONSERVING_SOLVER 

Solver advancing internal energy using pair-wise work done by particles, by Owen (2009).

SIMPLE_SOLVER 

Simple solver with pressure gradient only, mainly used for supporting purposes (benchmarking, teaching, etc.)

Definition at line 697 of file Settings.h.

◆ TimeStepCriterionEnum

enum TimeStepCriterionEnum
strong
Enumerator
COURANT 

Time step determined using CFL condition.

DERIVATIVES 

Time step computed by limiting value-to-derivative ratio of quantiites.

ACCELERATION 

Time step computed from ratio of acceleration and smoothing length.

DIVERGENCE 

Time step computed from velocity divergence.

ALL 

Value for using all criteria.

Definition at line 567 of file Settings.h.

◆ TimesteppingEnum

enum TimesteppingEnum
strong
Enumerator
EULER_EXPLICIT 

Explicit (forward) 1st-order integration.

LEAP_FROG 

Leap-frog 2nd-order integration.

RUNGE_KUTTA 

Runge-Kutta 4-th order integration.

PREDICTOR_CORRECTOR 

Predictor-corrector scheme.

MODIFIED_MIDPOINT 

Modified midpoint method with constant number of substeps.

BULIRSCH_STOER 

Bulirsch-Stoer integrator.

Definition at line 547 of file Settings.h.

◆ UvMapEnum

enum UvMapEnum
strong
Enumerator
PLANAR 

Planar mapping.

SPHERICAL 

Spherical mapping.

Definition at line 940 of file Settings.h.

◆ YieldingEnum

enum YieldingEnum
strong
Enumerator
NONE 

Gass or material with no stress tensor.

ELASTIC 

No yielding, just elastic deformations following Hooke's law.

VON_MISES 

Von Mises criterion.

DRUCKER_PRAGER 

Drucker-Prager pressure dependent yielding stress.

Definition at line 743 of file Settings.h.

Function Documentation

◆ checkSettingsAccess()

template<typename TEnum >
INLINE void checkSettingsAccess ( const bool  result,
const TEnum  key 
)

Definition at line 87 of file Settings.h.

◆ getIoCapabilities()

Flags<IoCapability> getIoCapabilities ( const IoEnum  type)

Returns the capabilities of given file format.

Definition at line 412 of file Settings.cpp.

◆ getIoDescription()

std::string getIoDescription ( const IoEnum  type)

Returns a short description of the file format.

Definition at line 387 of file Settings.cpp.

◆ getIoEnum()

Optional<IoEnum> getIoEnum ( const std::string &  ext)

Returns the file type from file extension.

Result NOTHING indicates there is no file type associated with the extension.

Definition at line 367 of file Settings.cpp.

◆ getIoExtension()

Optional<std::string> getIoExtension ( const IoEnum  type)

Returns the file extension associated with given IO type.

Result NOTHING indicates there is no particular extension associated with the IO type.

Definition at line 343 of file Settings.cpp.

Variable Documentation

◆ EMPTY_SETTINGS

const EmptySettingsTag EMPTY_SETTINGS

Definition at line 32 of file Settings.h.