Peano
Loading...
Searching...
No Matches
Tracer.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
7
8// #include <concepts>
9
10namespace toolbox {
11 namespace particles {
19 template <typename Particle>
20 void staticPosition(const Particle& particle, double timeStepSize) {}
21
25 template <typename ParticleAccessor>
26 concept ParticleTimeSteppingAccessor = requires { typename ParticleAccessor::Particle; };
27
28
29 template <typename Particle>
31 static tarch::la::Vector<Dimensions, double>& x(Particle& particle) { return particle.x(); }
32
33 static const tarch::la::Vector<Dimensions, double>& x(const Particle& particle) { return particle.x(); }
34
35 static tarch::la::Vector<Dimensions, double>& v(Particle& particle) { return particle.v(); }
36
37 static const tarch::la::Vector<Dimensions, double>& v(const Particle& particle) { return particle.v(); }
38 };
39
72 template <typename Particle>
73 void explicitEuler(Particle& particle, double timeStepSize);
74 } // namespace particles
75} // namespace toolbox
76
77// #include "Tracer.cpph"
void explicitEuler(Particle &particle, double timeStepSize)
Simple explicit Euler.
void staticPosition(const Particle &particle, double timeStepSize)
Leave the tracer particles where they are.
Definition Tracer.h:20
Simple vector class.
Definition Vector.h:159
static const tarch::la::Vector< Dimensions, double > & v(const Particle &particle)
Definition Tracer.h:37
static tarch::la::Vector< Dimensions, double > & v(Particle &particle)
Definition Tracer.h:35
static const tarch::la::Vector< Dimensions, double > & x(const Particle &particle)
Definition Tracer.h:33
static tarch::la::Vector< Dimensions, double > & x(Particle &particle)
Definition Tracer.h:31