mantaflow  0.10
A framework for fluid simulation
Classes | Macros | Functions
multigrid.cpp File Reference
#include "multigrid.h"

Classes

class  Manta::ThreadSize
 
class  Manta::NKMinHeap
 

Macros

#define FOR_LVL(IDX, LVL)   for(int IDX=0; IDX<mb[LVL].size(); IDX++)
 
#define FOR_VEC_MINMAX(VEC, MIN, MAX)
 
#define FOR_VECLIN_MINMAX(VEC, LIN, MIN, MAX)
 
#define MG_TIMINGS(X)
 

Functions

void Manta::knCopyA (std::vector< Real > &sizeRef, std::vector< Real > &A0, int stencilSize0, bool is3D, const Grid< Real > *pA0, const Grid< Real > *pAi, const Grid< Real > *pAj, const Grid< Real > *pAk)
 
void Manta::knActivateVertices (std::vector< GridMg::VertexType > &type_0, std::vector< Real > &A0, bool &nonZeroStencilSumFound, bool &trivialEquationsFound, const GridMg &mg)
 
void Manta::knSetRhs (std::vector< Real > &b, const Grid< Real > &rhs, const GridMg &mg)
 
void Manta::knSet (std::vector< T > &data, T value)
 
void Manta::knCopyToVector (std::vector< T > &dst, const Grid< T > &src)
 
void Manta::knCopyToGrid (const std::vector< T > &src, Grid< T > &dst)
 
void Manta::knAddAssign (std::vector< T > &dst, const std::vector< T > &src)
 
void Manta::knActivateCoarseVertices (std::vector< GridMg::VertexType > &type, int unused)
 
void Manta::knGenCoarseGridOperator (std::vector< Real > &sizeRef, std::vector< Real > &A, int l, const GridMg &mg)
 
void Manta::knSmoothColor (ThreadSize &numBlocks, std::vector< Real > &x, const Vec3i &blockSize, const std::vector< Vec3i > &colorOffs, int l, const GridMg &mg)
 
void Manta::knCalcResidual (std::vector< Real > &r, int l, const GridMg &mg)
 
Real Manta::knResidualNormSumSqr (const vector< Real > &r, int l, const GridMg &mg)
 
void Manta::knRestrict (std::vector< Real > &dst, const std::vector< Real > &src, int l_dst, const GridMg &mg)
 
void Manta::knInterpolate (std::vector< Real > &dst, const std::vector< Real > &src, int l_dst, const GridMg &mg)
 

Macro Definition Documentation

◆ FOR_VEC_MINMAX

#define FOR_VEC_MINMAX (   VEC,
  MIN,
  MAX 
)
Value:
Vec3i VEC; \
const Vec3i VEC##__min = (MIN), VEC##__max = (MAX); \
for(VEC.z=VEC##__min.z; VEC.z<=VEC##__max.z; VEC.z++) \
for(VEC.y=VEC##__min.y; VEC.y<=VEC##__max.y; VEC.y++) \
for(VEC.x=VEC##__min.x; VEC.x<=VEC##__max.x; VEC.x++)
Vector3D< int > Vec3i
3D vector class of type int
Definition: randomstream.h:548

◆ FOR_VECLIN_MINMAX

#define FOR_VECLIN_MINMAX (   VEC,
  LIN,
  MIN,
  MAX 
)
Value:
Vec3i VEC; int LIN = 0; \
const Vec3i VEC##__min = (MIN), VEC##__max = (MAX); \
for(VEC.z=VEC##__min.z; VEC.z<=VEC##__max.z; VEC.z++) \
for(VEC.y=VEC##__min.y; VEC.y<=VEC##__max.y; VEC.y++) \
for(VEC.x=VEC##__min.x; VEC.x<=VEC##__max.x; VEC.x++, LIN++)
Vector3D< int > Vec3i
3D vector class of type int
Definition: randomstream.h:548