core 0.5.0
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
distributed_adapt.hpp File Reference
#include <cmath>
#include <vector>
#include "peclet/core/amr/adapt.hpp"
#include "peclet/core/amr/distributed_octree.hpp"
#include "peclet/core/common/types.hpp"

Go to the source code of this file.

Namespaces

namespace  peclet
 
namespace  peclet::core
 
namespace  peclet::core::amr
 

Functions

template<int Dim, unsigned Bits>
std::vector< doublepeclet::core::amr::lohnerIndicatorDistributed (const DistributedOctree< Dim, Bits > &d, const std::vector< double > &u, double eps=0.01)
 Löhner indicator per local leaf, using the owner-based face-neighbour halo so cross-block neighbours contribute exactly as in a whole-domain solve.
 
template<int Dim, unsigned Bits>
std::vector< std::array< double, Dim > > peclet::core::amr::transferGradients (const DistributedOctree< Dim, Bits > &d, const std::vector< double > &f)
 transferField's minmod prolongation gradients on a DistributedOctree: bit-identical to the block-local transferFieldGradients wherever the stencil is in-block, block-crossing faces completed from the owners (coverValues + coverLevels — the covering leaf across a 2:1 interface is probed at the same corner coordinate faceNeighbor uses), and DOMAIN-crossing probes counted as missing — the single-rank faceNeighbor convention — so np=1 reproduces the local gradients bit-for-bit and the transfer is bit-exact WORLD==SELF.
 
template<int Dim, unsigned Bits>
std::vector< doublepeclet::core::amr::distributedAdapt (DistributedOctree< Dim, Bits > &d, const std::vector< double > &f, double refineThresh, double coarsenThresh, unsigned finestLevel=0, double eps=0.01, bool linear=true)
 One distributed solution-adaptive step.