|
core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
|
#include <scalar_transport.hpp>
Public Types | |
| using | Octree = BlockOctree< Dim, Bits > |
| using | M = typename Octree::M |
| using | Code = typename Octree::Code |
| using | Coord = typename Octree::Coord |
Public Member Functions | |
| ScalarTransport ()=default | |
| ScalarTransport (const Octree &t, const AmrGeometry< Dim > &geo) | |
| void | init (const Octree &t, const AmrGeometry< Dim > &geo) |
| Index | numLeaves () const |
| Real | cellWidth (Index i) const |
| Real | cellVolume (Index i) const |
| double | totalMass (const std::vector< double > &c) const |
| Total scalar content sum_i V_i c_i (conserved by a divergence-free update). | |
| template<class VelFn > | |
| void | step (const std::vector< double > &c, std::vector< double > &cOut, double dt, double D, VelFn &&vel) const |
| One explicit Euler step: cOut = c + dt*(-div(u c) + D lap(c)). | |
| template<class Fn > | |
| void | forEachFace (Index i, Fn &&fn) const |
Visit each (sub)face of leaf i. | |
Definition at line 35 of file scalar_transport.hpp.
| using peclet::core::amr::ScalarTransport< Dim, Bits >::Octree = BlockOctree<Dim, Bits> |
Definition at line 37 of file scalar_transport.hpp.
| using peclet::core::amr::ScalarTransport< Dim, Bits >::M = typename Octree::M |
Definition at line 38 of file scalar_transport.hpp.
| using peclet::core::amr::ScalarTransport< Dim, Bits >::Code = typename Octree::Code |
Definition at line 39 of file scalar_transport.hpp.
| using peclet::core::amr::ScalarTransport< Dim, Bits >::Coord = typename Octree::Coord |
Definition at line 40 of file scalar_transport.hpp.
|
default |
|
inline |
Definition at line 43 of file scalar_transport.hpp.
References peclet::core::amr::ScalarTransport< Dim, Bits >::init().
|
inline |
Definition at line 45 of file scalar_transport.hpp.
Referenced by peclet::core::amr::ScalarTransport< Dim, Bits >::ScalarTransport().
|
inline |
Definition at line 52 of file scalar_transport.hpp.
References peclet::core::amr::BlockOctree< Dim, Bits >::numLeaves().
Referenced by peclet::core::amr::ScalarTransport< Dim, Bits >::step(), and peclet::core::amr::ScalarTransport< Dim, Bits >::totalMass().
|
inline |
Definition at line 53 of file scalar_transport.hpp.
References peclet::core::amr::BlockOctree< Dim, Bits >::level().
Referenced by peclet::core::amr::ScalarTransport< Dim, Bits >::cellVolume().
|
inline |
Definition at line 54 of file scalar_transport.hpp.
References peclet::core::amr::ScalarTransport< Dim, Bits >::cellWidth().
Referenced by peclet::core::amr::ScalarTransport< Dim, Bits >::step(), and peclet::core::amr::ScalarTransport< Dim, Bits >::totalMass().
|
inline |
Total scalar content sum_i V_i c_i (conserved by a divergence-free update).
Definition at line 62 of file scalar_transport.hpp.
References peclet::core::amr::ScalarTransport< Dim, Bits >::cellVolume(), and peclet::core::amr::ScalarTransport< Dim, Bits >::numLeaves().
|
inline |
One explicit Euler step: cOut = c + dt*(-div(u c) + D lap(c)).
vel(fc,axis) returns the axis-component of velocity at world face centre fc.
Definition at line 72 of file scalar_transport.hpp.
References peclet::core::amr::ScalarTransport< Dim, Bits >::cellVolume(), peclet::core::amr::ScalarTransport< Dim, Bits >::forEachFace(), and peclet::core::amr::ScalarTransport< Dim, Bits >::numLeaves().
|
inline |
Visit each (sub)face of leaf i.
fn(neighbour, axis, outwardSign, areaPhys, faceCentreWorld, centreDistPhys). Periodic; 2:1 interfaces enumerated.
Definition at line 93 of file scalar_transport.hpp.
References peclet::core::amr::BlockOctree< Dim, Bits >::bounds(), peclet::core::amr::BlockOctree< Dim, Bits >::find(), and peclet::core::amr::BlockOctree< Dim, Bits >::level().
Referenced by peclet::core::amr::ScalarTransport< Dim, Bits >::step().