OpenLB 1.7
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | List of all members
olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z > Class Template Reference

PostProcessor for the wetting boundary condition in the free energy model. More...

#include <boundaryPostProcessors3D.h>

+ Collaboration diagram for olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >:

Public Types

using parameters = meta::list<olb::descriptors::ADDEND>
 

Public Member Functions

int getPriority () const
 
template<CONCEPT(Cell) CELL, typename PARAMETERS >
void apply (CELL &cell, PARAMETERS &parameters) any_platform
 

Static Public Attributes

static constexpr OperatorScope scope = OperatorScope::PerCellWithParameters
 

Detailed Description

template<typename T, typename DESCRIPTOR, int NORMAL_X, int NORMAL_Y, int NORMAL_Z>
class olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >

PostProcessor for the wetting boundary condition in the free energy model.

This is required to set rho on the boundary (using the denisty of the neighbouring cell in direction of inwards facing normal at the boundary), as the coupling between the lattices requires the calculation of a density gradient.

Definition at line 241 of file boundaryPostProcessors3D.h.

Member Typedef Documentation

◆ parameters

template<typename T , typename DESCRIPTOR , int NORMAL_X, int NORMAL_Y, int NORMAL_Z>
using olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >::parameters = meta::list<olb::descriptors::ADDEND>

Definition at line 243 of file boundaryPostProcessors3D.h.

Member Function Documentation

◆ apply()

template<typename T , typename DESCRIPTOR , int NORMAL_X, int NORMAL_Y, int NORMAL_Z>
template<CONCEPT(Cell) CELL, typename PARAMETERS >
void olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >::apply ( CELL & cell,
PARAMETERS & parameters )

Definition at line 507 of file boundaryPostProcessors3D.hh.

507 {
508
509 T addend = cell.template getField<descriptors::ADDEND>();
510
511 T rhoBulk = cell.neighbor({-NORMAL_X, -NORMAL_Y, -NORMAL_Z}).computeRho();
512 T rhoTmp = 0.;
513
514 for (int iPop = 1; iPop < DESCRIPTOR::q ; ++iPop) {
515 rhoTmp += cell[iPop];
516 }
517
518 T rho = rhoBulk + addend;
519 rho -= rhoTmp;
520
521 cell[0] = rho - 1.;
522
523}

◆ getPriority()

template<typename T , typename DESCRIPTOR , int NORMAL_X, int NORMAL_Y, int NORMAL_Z>
int olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >::getPriority ( ) const
inline

Definition at line 247 of file boundaryPostProcessors3D.h.

247 {
248 return 0;
249 }

Member Data Documentation

◆ scope

template<typename T , typename DESCRIPTOR , int NORMAL_X, int NORMAL_Y, int NORMAL_Z>
constexpr OperatorScope olb::FreeEnergyWallProcessor3D< T, DESCRIPTOR, NORMAL_X, NORMAL_Y, NORMAL_Z >::scope = OperatorScope::PerCellWithParameters
staticconstexpr

Definition at line 245 of file boundaryPostProcessors3D.h.


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