peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
peclet::voro::fv::CovolumeNS< Real > Struct Template Reference

The covolume NS solver state: face fluxes u, cell pressure p (from the last projection). More...

#include <covolume.hpp>

Public Types

using Exec = peclet::core::ExecSpace
 

Public Member Functions

template<class Ex >
void setExchange (Ex &ex)
 
void setup (const FaceMesh< Real > &mesh, Real viscosity, bool amg=false)
 
void setWallVelocity (const DV< Real > &Uw)
 
void applyWallFlux (const DV< Real > &uf) const
 Impose the boundary fluxes on a face field.
 
void setDec (const TessellationView< Real > &view)
 Install the DEC viscous term from the published view (facet-edge CSR with edge lengths).
 
void rhs (const DV< Real > &uf, const DV< Real > &out)
 k = Rᵀ a(u): the face-normal tendency (no pressure).
 
void project (const DV< Real > &uf, Real dt)
 Make uf divergence-free: L φ = div uf / dt, uf −= dt grad φ; p = φ.
 
void step (Real dt)
 One SSP-RK3 step with a projection after every stage.
 
Real kineticEnergy () const
 ½⟨u,u⟩_F — the energy the scheme conserves.
 
Real maxDivergence ()
 max_i |div u|_i
 

Public Attributes

FaceMesh< Real > m
 
Real nu = 0
 
Real convScale = 1
 
DV< Real > u
 
DV< Real > p
 
DV< Real > force
 
DV< Real > Uwall
 
DV< Real > ub
 
bool wallQuadratic = true
 
DV< Real > wg
 
DV< Real > g9w
 
bool viscousDEC = false
 
DecEdges< Real > dec
 
DV< Real > decOut
 
DV< Real > decDiv
 
DV< Real > U
 
DV< Real > a
 
DV< Real > k
 
DV< Real > u1
 
DV< Real > u2
 
DV< Real > div
 
DV< Real > gphi
 
PressureSolver< Real > poisson
 
std::function< void(const DV< Real > &, int)> exchange
 
std::function< Real(Real)> sum
 
std::function< Real(Real)> max
 
Real lastDiv = 0
 

Detailed Description

template<class Real>
struct peclet::voro::fv::CovolumeNS< Real >

The covolume NS solver state: face fluxes u, cell pressure p (from the last projection).

Member Typedef Documentation

◆ Exec

template<class Real >
using peclet::voro::fv::CovolumeNS< Real >::Exec = peclet::core::ExecSpace

Member Function Documentation

◆ applyWallFlux()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::applyWallFlux ( const DV< Real > &  uf) const
inline

Impose the boundary fluxes on a face field.

◆ kineticEnergy()

template<class Real >
Real peclet::voro::fv::CovolumeNS< Real >::kineticEnergy ( ) const
inline

½⟨u,u⟩_F — the energy the scheme conserves.

◆ maxDivergence()

template<class Real >
Real peclet::voro::fv::CovolumeNS< Real >::maxDivergence ( )
inline

max_i |div u|_i

◆ project()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::project ( const DV< Real > &  uf,
Real  dt 
)
inline

Make uf divergence-free: L φ = div uf / dt, uf −= dt grad φ; p = φ.

◆ rhs()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::rhs ( const DV< Real > &  uf,
const DV< Real > &  out 
)
inline

k = Rᵀ a(u): the face-normal tendency (no pressure).

◆ setDec()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::setDec ( const TessellationView< Real > &  view)
inline

Install the DEC viscous term from the published view (facet-edge CSR with edge lengths).

◆ setExchange()

template<class Real >
template<class Ex >
void peclet::voro::fv::CovolumeNS< Real >::setExchange ( Ex &  ex)
inline

◆ setup()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::setup ( const FaceMesh< Real > &  mesh,
Real  viscosity,
bool  amg = false 
)
inline

◆ setWallVelocity()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::setWallVelocity ( const DV< Real > &  Uw)
inline

Prescribe the boundary-face velocity (3 × nBoundary; empty = no-slip): boundary fluxes u_f = U_wall·n; the viscous wall flux and the convective wall value read U_wall.

◆ step()

template<class Real >
void peclet::voro::fv::CovolumeNS< Real >::step ( Real  dt)
inline

One SSP-RK3 step with a projection after every stage.

Member Data Documentation

◆ a

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::a

◆ convScale

template<class Real >
Real peclet::voro::fv::CovolumeNS< Real >::convScale = 1

◆ dec

template<class Real >
DecEdges<Real> peclet::voro::fv::CovolumeNS< Real >::dec

◆ decDiv

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::decDiv

◆ decOut

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::decOut

◆ div

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::div

◆ exchange

template<class Real >
std::function<void(const DV<Real>&, int)> peclet::voro::fv::CovolumeNS< Real >::exchange

◆ force

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::force

◆ g9w

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::g9w

◆ gphi

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::gphi

◆ k

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::k

◆ lastDiv

template<class Real >
Real peclet::voro::fv::CovolumeNS< Real >::lastDiv = 0

◆ m

template<class Real >
FaceMesh<Real> peclet::voro::fv::CovolumeNS< Real >::m

◆ max

template<class Real >
std::function<Real(Real)> peclet::voro::fv::CovolumeNS< Real >::max

◆ nu

template<class Real >
Real peclet::voro::fv::CovolumeNS< Real >::nu = 0

◆ p

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::p

◆ poisson

template<class Real >
PressureSolver<Real> peclet::voro::fv::CovolumeNS< Real >::poisson

◆ sum

template<class Real >
std::function<Real(Real)> peclet::voro::fv::CovolumeNS< Real >::sum

◆ u

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::u

◆ U

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::U

◆ u1

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::u1

◆ u2

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::u2

◆ ub

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::ub

◆ Uwall

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::Uwall

◆ viscousDEC

template<class Real >
bool peclet::voro::fv::CovolumeNS< Real >::viscousDEC = false

◆ wallQuadratic

template<class Real >
bool peclet::voro::fv::CovolumeNS< Real >::wallQuadratic = true

◆ wg

template<class Real >
DV<Real> peclet::voro::fv::CovolumeNS< Real >::wg

The documentation for this struct was generated from the following file: