OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
olb::YuPostProcessor Class Reference

#include <setBouzidiBoundary.h>

+ Collaboration diagram for olb::YuPostProcessor:

Public Member Functions

int getPriority () const
 
template<typename CELL , typename V = typename CELL::value_t>
void apply (CELL &x_b) any_platform
 

Static Public Attributes

static constexpr OperatorScope scope = OperatorScope::PerCell
 

Detailed Description

Definition at line 186 of file setBouzidiBoundary.h.

Member Function Documentation

◆ apply()

template<typename CELL , typename V = typename CELL::value_t>
void olb::YuPostProcessor::apply ( CELL & x_b)
inline

Definition at line 195 of file setBouzidiBoundary.h.

195 {
196 using DESCRIPTOR = typename CELL::descriptor_t;
197 const auto q = x_b.template getFieldPointer<descriptors::BOUZIDI_DISTANCE>();
198 for (int iPop=1; iPop < descriptors::q<DESCRIPTOR>(); ++iPop) {
199 if (q[iPop] >= 0) {
200 const auto c = descriptors::c<DESCRIPTOR>(iPop);
201 const int iPop_opposite = descriptors::opposite<DESCRIPTOR>(iPop);
202 auto x_s = x_b.neighbor(c); // solid cell inside obstacle material
203 auto x_f = x_b.neighbor(descriptors::c<DESCRIPTOR>(iPop_opposite)); // fluid boundary cell
204 auto f_tmp = x_b[iPop] + q[iPop]*(x_s[iPop] - x_b[iPop]); // population at fictitious ghost particle
205 x_b[iPop_opposite] = f_tmp + q[iPop]/(V{1}+q[iPop]) * (x_f[iPop_opposite] - f_tmp);
206 }
207 }
208 }
platform_constant int c[Q][D]
constexpr int q() any_platform

◆ getPriority()

int olb::YuPostProcessor::getPriority ( ) const
inline

Definition at line 190 of file setBouzidiBoundary.h.

190 {
191 return -1;
192 }

Member Data Documentation

◆ scope

constexpr OperatorScope olb::YuPostProcessor::scope = OperatorScope::PerCell
staticconstexpr

Definition at line 188 of file setBouzidiBoundary.h.


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