▼ src | |
▼ bench | |
► examples | |
TestBenchmark.cpp | |
Common.h | |
main.cpp | |
Session.cpp | |
Session.h | Benchmark |
Stats.h | Benchmark statistics |
▼ cli | |
► batch | |
Batch.cpp | |
► impact | |
Impact.cpp | |
► info | |
Info.cpp | |
► launcher | |
Launcher.cpp | |
► meshtossf | |
MeshToSsf.cpp | |
► problems | |
► boundary | |
Boundary.cpp | Testing several boundary modes |
► cliff_collapse | |
CliffCollapse.cpp | Cliff collapse test |
► collision | |
Collision.cpp | Test of an asteroid collision |
► elastic_bands | |
ElasticBands.cpp | Colliding elastic bands test |
► galaxy | |
Galaxy.cpp | Initial conditions and the evolution of a galaxy |
► kelvin_helmholtz | |
KelvinHelmholtz.cpp | Kelvin-Helmholtz instability |
► rotating_rod | |
RotatingRod.cpp | Rotating rod test |
► sedov | |
Sedov.cpp | Sedov blast test |
► sod | |
Sod.cpp | Sod shock tube test |
Solution.cpp | |
Solution.h | |
► wave | |
SoundWave.cpp | |
Common.cpp | |
Common.h | |
main.cpp | |
► sandbox | |
Sandbox.cpp | |
► ssftoout | |
SsfToOut.cpp | |
► ssftoscf | |
SsfToScf.cpp | |
► ssftotxt | |
SsfToTxt.cpp | |
► ssftovdb | |
SsfToVdb.cpp | |
▼ core | |
► common | |
Assert.cpp | |
Assert.h | Custom assertions |
ForwardDecl.h | |
Globals.h | Global parameters of the code |
Traits.h | Few non-standard type traits |
► gravity | |
► benchmark | |
Gravity.cpp | |
AggregateSolver.cpp | |
AggregateSolver.h | |
BarnesHut.cpp | |
BarnesHut.h | Barnes-Hut algorithm for computation of gravitational acceleration |
BruteForceGravity.h | Simple gravity solver evaluating all particle pairs |
CachedGravity.h | Wrapper of other IGravity object that uses cached accelerations to speed-up the evaluation |
Collision.h | Collision handling |
IGravity.h | Base class for solvers of gravity |
Moments.h | |
NBodySolver.cpp | |
NBodySolver.h | Solver performing N-body simulation |
SphericalGravity.h | Simple model of gravity, valid only for homogeneous spheres |
SymmetricGravity.h | Wrapper of gravity implementation to be used with symmetric boundary conditions |
► io | |
Column.h | Object for printing quantity values into output |
FileManager.cpp | |
FileManager.h | |
FileSystem.cpp | |
FileSystem.h | |
Logger.cpp | |
Logger.h | Logging routines of the run |
LogWriter.cpp | |
LogWriter.h | |
Output.cpp | |
Output.h | Saving and loading particle data |
Path.cpp | |
Path.h | Object representing a path on a filesystem, similar to std::filesystem::path in c++17 |
Serializer.h | Data serialization and deserialization |
Table.h | Helper container allowing to store strings in cells and print them into table |
► math | |
► rng | |
Rng.cpp | |
Rng.h | Random number generators |
VectorRng.h | Objects for generating random vectors |
AffineMatrix.h | Three-dimensional affine matrix |
Curve.cpp | |
Curve.h | |
Functional.h | |
MathBasic.h | Basic math routines |
MathUtils.h | Additional math routines (with more includes) |
Means.h | Computing minimum, maximum and mean value of floats |
Morton.cpp | |
Morton.h | |
Quat.h | Quaternion algebra |
SparseMatrix.cpp | |
SparseMatrix.h | Sparse matrix with utility functions (a thin wrapper over Eigen3 implementation) |
► objects | |
► containers | |
► benchmark | |
Map.cpp | |
Allocators.h | Allocators used by containers |
Array.h | Generic dynamically allocated resizable storage |
ArrayRef.h | |
ArrayView.h | Simple non-owning view of a container |
CallbackSet.h | Container of callbacks |
CircularArray.h | |
FlatMap.h | Key-value associative container implemented as a sorted array |
FlatSet.h | Container storing sorted unique values |
Grid.h | Three-dimensional dynamically-allocated container |
List.h | Doubly-linked list |
LookupMap.h | Three-dimensional grid containing indices |
Queue.h | Double-ended queue |
StaticArray.h | |
String.cpp | |
String.h | Object representing a sequence of characters |
Tuple.h | Re-implementation of std::tuple with some additional functionality |
UnorderedMap.h | Key-value associative container |
Volume.h | |
► finders | |
► benchmark | |
Finders.cpp | |
AdaptiveGrid.h | Finder projecting a non-uniform grid on particles |
BruteForceFinder.h | Object finding nearest neighbours by evaluating all partice pairs |
Bvh.h | |
Bvh.inl.h | |
HashMapFinder.cpp | |
HashMapFinder.h | Finding neighbors using hash map |
KdTree.cpp | |
KdTree.h | K-d tree for efficient search of neighbouring particles |
KdTree.inl.h | |
LinkedList.h | |
NeighbourFinder.cpp | |
NeighbourFinder.h | |
Octree.h | Implementation of Octree algorithm for kNN queries |
Order.h | Helper object defining permutation |
PeriodicFinder.cpp | |
PeriodicFinder.h | |
PointCloud.cpp | |
PointCloud.h | |
UniformGrid.cpp | |
UniformGrid.h | Simple algorithm for finding nearest neighbours using spatial partitioning of particles |
► geometry | |
AntisymmetricTensor.h | Basic algebra for antisymmetric 2nd order tensors |
Box.h | Object representing a three-dimensional axis-aligned box |
Domain.cpp | |
Domain.h | Object defining computational domain |
Generic.h | Function for generic manipulation with geometric types |
Indices.h | Vectorized computations with integral numbers |
Multipole.h | |
Sphere.h | Object representing a three-dimensional sphere |
SymmetricTensor.cpp | |
SymmetricTensor.h | Basic algebra for symmetric 2nd order tensors |
Tensor.h | Generic tensor of the 2nd order |
TracelessTensor.h | Symmetric traceless 2nd order tensor |
Triangle.h | |
Vector.h | Basic vector algebra. Computations are accelerated using SIMD |
► utility | |
ArrayUtils.h | Utilities to simplify working with arrays |
Dynamic.cpp | |
Dynamic.h | Object holding a single values of various types |
EnumMap.h | Helper object for converting enums to string, listing all available values of enum, etc |
Iterator.h | Ordinary iterator for custom containers |
IteratorAdapters.h | Helper objects allowing to iterate in reverse, iterate over multiple containeres, etc |
MemoryPool.h | |
OperatorTemplate.h | Class defining additional operators from existing ones |
OutputIterators.h | Helper iterators allowing to save values to containers |
PerElementWrapper.h | |
StringUtils.cpp | |
StringUtils.h | |
► wrappers | |
AlignedStorage.h | Base class for utility wrappers (Optional, Variant, ...) |
Any.h | Object that can store value of any type |
AutoPtr.h | Simplified implementation of std::unique_ptr, using only default deleter |
ClonePtr.h | Smart pointer performing cloning of stored resource rather than copying pointer |
Expected.h | Wrapper of type containing either a value or an error message |
ExtendedEnum.h | |
Finally.h | Wraps a functor and executes it once the wrapper goes out of scope |
Flags.h | Wrapper over enum allowing setting (and querying) individual bits of the stored value |
Function.h | Generic wrappers of lambdas, functors and other callables |
Interval.cpp | |
Interval.h | Object representing interval of real values |
Locking.h | |
LockingPtr.h | Smart pointer associated with a mutex |
Lut.h | Approximation of generic function by look-up table |
Optional.h | Wrapper of type value of which may or may not be present |
Outcome.h | Return value of function that may fail, containing either SUCCEES (true) or error message |
PropagateConst.h | Wrapper of another pointer-like object with reference-like const correctness |
RawPtr.h | Simple non-owning wrapper of pointer |
SafePtr.h | Safer alternative to AutoPtr, throwing exception when a nullptr is dereferenced |
SharedPtr.h | |
SharedToken.h | Helper class allowing to own a SharedPtr without knowing its type |
Variant.h | Object capable of storing values of different types |
Exceptions.h | |
Object.h | Common macros and basic objects |
► physics | |
Constants.h | Definitions of physical constaints (in SI units) |
Damage.cpp | |
Damage.h | |
Eos.cpp | |
Eos.h | Equations of state |
Functions.cpp | |
Functions.h | |
Integrals.cpp | |
Integrals.h | Integrals of motion and other integral quantities |
Rheology.cpp | |
Rheology.h | Rheology of materials |
TimeFormat.cpp | |
TimeFormat.h | Date and time routines |
Units.cpp | |
Units.h | |
► post | |
Analysis.cpp | |
Analysis.h | Various function for interpretation of the results of a simulation |
Compare.cpp | |
Compare.h | |
MarchingCubes.cpp | |
MarchingCubes.h | |
Mesh.cpp | |
Mesh.h | |
MeshFile.cpp | |
MeshFile.h | |
Plot.cpp | |
Plot.h | Drawing quantity values as functions of time or spatial coordinates |
Point.h | 2D point and other primitives for 2D geometry |
StatisticTests.cpp | |
StatisticTests.h | |
TwoBody.cpp | |
TwoBody.h | |
► quantities | |
CompressedStorage.h | |
IMaterial.cpp | |
IMaterial.h | Base class for all particle materials |
Iterate.h | Functions for iterating over individual quantities in Storage |
Particle.cpp | |
Particle.h | |
Quantity.cpp | |
Quantity.h | Holder of quantity values and their temporal derivatives |
QuantityHelpers.h | Conversions for quantity enums |
QuantityIds.cpp | |
QuantityIds.h | Quantity identifiers |
Storage.cpp | |
Storage.h | Container for storing particle quantities and materials |
► run | |
► jobs | |
GeometryJobs.cpp | |
GeometryJobs.h | |
InitialConditionJobs.cpp | |
InitialConditionJobs.h | |
IoJobs.cpp | |
IoJobs.h | |
MaterialJobs.cpp | |
MaterialJobs.h | |
ParticleJobs.cpp | |
ParticleJobs.h | |
Presets.cpp | |
Presets.h | |
ScriptJobs.cpp | |
ScriptJobs.h | |
SimulationJobs.cpp | |
SimulationJobs.h | |
Config.cpp | |
Config.h | Interface for the configuration files storing job data |
IRun.cpp | |
IRun.h | Basic interface defining a single run |
Job.cpp | |
Job.h | |
Job.inl.h | |
Node.cpp | |
Node.h | |
ScriptNode.cpp | |
ScriptNode.h | |
ScriptUtils.cpp | |
ScriptUtils.h | Utility functions and classes exposed to the embedded scripting language |
SpecialEntries.cpp | |
SpecialEntries.h | Additional bindings to IVirtualSettings |
Trigger.h | Triggers of auxiliary actions during the run |
VirtualSettings.cpp | |
VirtualSettings.h | Object providing connection between component parameters and values exposed to the user |
VirtualSettings.inl.h | |
► sph | |
► boundary | |
Boundary.cpp | |
Boundary.h | Boundary conditions |
► equations | |
► av | |
Balsara.h | Implementation of the Balsara switch |
Conductivity.h | Artificial thermal conductivity |
MorrisMonaghan.h | Time-dependent artificial viscosity by Morris & Monaghan (1997) |
Riemann.h | Artificial viscosity based on Riemann solver |
Standard.h | Standard SPH artificial viscosity |
Stress.cpp | |
Stress.h | Form of tensor artificial viscosity for SPH with stress tensor |
Accumulated.cpp | |
Accumulated.h | Buffer storing quantity values accumulated by summing over particle pairs |
DeltaSph.h | Delta-SPH modification of the standard SPH formulation |
Derivative.cpp | |
Derivative.h | Spatial derivatives to be computed by SPH discretization |
DerivativeHelpers.h | |
EquationTerm.cpp | |
EquationTerm.h | Right-hand side term of SPH equations |
Fluids.h | Equations for simulations of water and other fluids |
Friction.h | |
Heat.h | Energy transfer terms |
HelperTerms.h | Additional equation terms computing SPH statistics rather than physical quantities |
Potentials.h | Additional forces that do not depend on spatial derivatives |
Rotation.cpp | |
Rotation.h | |
XSph.h | XSPH correction to the integration of particle positions |
Yorp.h | |
► handoff | |
Handoff.cpp | |
Handoff.h | Utility functions for handing-off the results of SPH simulations to N-body integrator |
► initial | |
Distribution.cpp | |
Distribution.h | Filling spatial domain with SPH particles |
Galaxy.cpp | |
Galaxy.h | |
Initial.cpp | |
Initial.h | Generating initial conditions of SPH particles |
MeshDomain.cpp | |
MeshDomain.h | Domain represented by triangular mesh |
Stellar.cpp | |
Stellar.h | |
UvMapping.h | |
► kernel | |
► benchmark | |
Kernel.cpp | |
GravityKernel.h | Smoothing kernels for including gravity into SPH |
Interpolation.h | Computes interpolated values of quantities between SPH particles |
Kernel.h | SPH kernels |
► solvers | |
► benchmark | |
Solvers.cpp | |
AsymmetricSolver.cpp | |
AsymmetricSolver.h | SPH solver with asymmetric particle evaluation |
DensityIndependentSolver.cpp | |
DensityIndependentSolver.h | Density-independent formulation of SPH |
ElasticDeformationSolver.cpp | |
ElasticDeformationSolver.h | |
EnergyConservingSolver.cpp | |
EnergyConservingSolver.h | |
EntropySolver.h | |
EquilibriumSolver.cpp | |
EquilibriumSolver.h | Computes quantities to get equilibrium state |
GradHSolver.cpp | |
GradHSolver.h | Extension of SPH solver taking into account the gradient of smoothing lengths |
GravitySolver.cpp | |
GravitySolver.h | SPH solver including gravity |
SimpleSolver.h | |
StabilizationSolver.h | Helper solver used to converge into stable initial conditions |
StandardSets.cpp | |
StandardSets.h | Standard SPH formulation that uses continuity equation for solution of density |
SummationSolver.cpp | |
SummationSolver.h | Solver using direction summation to compute density and smoothing length |
SymmetricSolver.cpp | |
SymmetricSolver.h | Basic SPH solver, evaluating all interactions symmetrically |
Diagnostics.cpp | |
Diagnostics.h | Looking for problems in SPH simulation and reporting potential errors |
Materials.cpp | |
Materials.h | SPH-specific implementation of particle materials |
► system | |
ArgsParser.cpp | |
ArgsParser.h | |
ArrayStats.h | |
Crashpad.h | |
Factory.cpp | |
Factory.h | Creating code components based on values from settings |
Platform.cpp | |
Platform.h | System functions |
Process.cpp | |
Process.h | Creating and managing processes |
Profiler.cpp | |
Profiler.h | Tool to measure time spent in functions and profile the code |
Settings.cpp | |
Settings.h | Generic storage and input/output routines of settings |
Settings.impl.h | |
Statistics.cpp | |
Statistics.h | Statistics gathered and periodically displayed during the run |
Timer.cpp | |
Timer.h | Measuring time intervals and executing periodic events |
► tests | |
Approx.h | Helper wrapper that allows to check whether two values are equal to some given accuracy |
Setup.cpp | |
Setup.h | Helper functions performing common tasks in unit testing and benchmarks |
► thread | |
AtomicFloat.h | Implementation of number with atomic operators |
CheckFunction.cpp | |
CheckFunction.h | Helper functions to check the internal consistency of the code |
ConcurrentQueue.h | |
OpenMp.cpp | |
OpenMp.h | |
Pool.cpp | |
Pool.h | Simple thread pool with fixed number of threads |
Scheduler.cpp | |
Scheduler.h | Interface for executing tasks (potentially) asynchronously |
Tbb.cpp | |
Tbb.h | Implements IScheduler interface using TBB |
ThreadLocal.h | Template for thread-local storage |
► timestepping | |
ISolver.h | Base interface for all solvers |
TimeStepCriterion.cpp | |
TimeStepCriterion.h | Criteria for computing the time step |
TimeStepping.cpp | |
TimeStepping.h | Algorithms for temporal evolution of the physical model |
Sph.h | Includes common headers |
▼ examples | |
► 01_hello_asteroid | |
HelloAsteroid.cpp | |
► 02_death_star | |
DeathStar.cpp | |
► 03_van_der_waals | |
VanDerWaals.cpp | |
► 04_simple_collision | |
SimpleCollision.cpp | |
► 05_fragmentation_reaccumulation | |
FragmentationReaccumulation.cpp | |
► 06_heat_diffusion | |
HeatDiffusion.cpp | |
▼ gui | |
► launcherGui | |
LauncherGui.cpp | |
LauncherGui.h | |
► objects | |
Bitmap.cpp | |
Bitmap.h | Wrapper of wxBitmap, will be possibly replaced by custom implementation |
Camera.cpp | |
Camera.h | Defines projection transforming 3D particles onto 2D screen |
CameraJobs.cpp | |
CameraJobs.h | |
Color.h | |
Colorizer.cpp | |
Colorizer.h | Object converting quantity values of particles into colors |
DelayedCallback.h | |
Filmic.cpp | |
Filmic.h | |
GraphicsContext.h | Implementation of IDrawingContext using wxGraphicsContext |
Movie.cpp | |
Movie.h | Periodically saves rendered images to disk |
Palette.cpp | |
Palette.h | |
Plots.cpp | |
Plots.h | |
Point.h | Simple 2D vector with integer coordinates. Provides conversion from and to wxPoint |
RenderContext.cpp | |
RenderContext.h | |
RenderJobs.cpp | |
RenderJobs.h | |
SvgContext.h | Implementation of IDrawingContext for creating vector images (.svg) |
Texture.h | |
► renderers | |
Brdf.h | |
ContourRenderer.cpp | |
ContourRenderer.h | Renderer drawing iso-contours of specified quantity |
FrameBuffer.h | |
IRenderer.cpp | |
IRenderer.h | Interface for renderers |
MeshRenderer.cpp | |
MeshRenderer.h | Renderer visualizing the surface as triangle mesh |
ParticleRenderer.cpp | |
ParticleRenderer.h | Renderer drawing individual particles as dots |
RayTracer.cpp | |
RayTracer.h | |
Spectrum.cpp | |
Spectrum.h | |
VolumeRenderer.cpp | |
VolumeRenderer.h | |
► sandboxGui | |
SandboxGui.cpp | |
► ssftopng | |
SsfToPng.cpp | |
SsfToPng.h | |
► windows | |
BatchDialog.cpp | |
BatchDialog.h | |
CurveDialog.cpp | |
CurveDialog.h | |
GridPage.cpp | |
GridPage.h | |
GuiSettingsDialog.cpp | |
GuiSettingsDialog.h | |
Icons.data.h | |
IGraphicsPane.h | Base class for drawing particles into the window |
MainWindow.cpp | |
MainWindow.h | |
NodePage.cpp | |
NodePage.h | |
OrthoPane.cpp | |
OrthoPane.h | |
PaletteDialog.cpp | |
PaletteDialog.h | |
ParticleProbe.cpp | |
ParticleProbe.h | Frame showing information about selected particle |
PlotView.cpp | |
PlotView.h | Drawing of plots |
ProgressPanel.h | |
RenderPane.cpp | |
RenderPane.h | |
RunPage.cpp | |
RunPage.h | |
RunSelectDialog.cpp | |
RunSelectDialog.h | |
SessionDialog.cpp | |
SessionDialog.h | |
TimeLine.cpp | |
TimeLine.h | |
Widgets.cpp | |
Widgets.h | |
ArcBall.h | Helper class for rotating objects by mouse drag |
Controller.cpp | |
Controller.h | |
Factory.cpp | |
Factory.h | |
MainLoop.cpp | |
MainLoop.h | Posting events to be executed on main thread |
Project.cpp | |
Project.h | |
Settings.cpp | |
Settings.h | |
Utils.cpp | |
Utils.h | Random utility functions for drawing stuff to DC |
▼ post | |
main.cpp | |
helpers.py | |