24#ifndef FREE_ENERGY_POST_PROCESSOR_3D_H
25#define FREE_ENERGY_POST_PROCESSOR_3D_H
40template<
typename T,
typename DESCRIPTOR>
49 T alpha_, T kappa1_, T kappa2_, T kappa3_,
62 int extent(
int whichDirection)
const override
68 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
72 int x0, x1, y0, y1, z0, z1;
73 T alpha, kappa1, kappa2, kappa3;
74 std::vector<BlockStructureD<3>*> partners;
80template<
typename T,
typename DESCRIPTOR>
90 int extent(
int whichDirection)
const override
96 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
98 int x0, x1, y0, y1, z0, z1;
99 std::vector<BlockStructureD<3>*> partners;
105template<
typename T,
typename DESCRIPTOR>
117 int extent(
int whichDirection)
const override
123 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
125 int x0, x1, y0, y1, z0, z1;
126 std::vector<BlockStructureD<3>*> partners;
132template<
typename T,
typename DESCRIPTOR>
146 int extent(
int whichDirection)
const override
152 int x0_,
int x1_,
int y0_,
int y1_,
int z0_,
int z1_)
override;
154 int x0, x1, y0, y1, z0, z1;
156 std::vector<BlockStructureD<3>*> partners;
161template<
typename T,
typename DESCRIPTOR>
169 T alpha_, T kappa1_, T kappa2_);
181 T alpha_, T kappa1_, T kappa2_, T kappa3_);
191 T alpha, kappa1, kappa2, kappa3;
195template<
typename T,
typename DESCRIPTOR>
205template<
typename T,
typename DESCRIPTOR>
216template<
typename T,
typename DESCRIPTOR>
Platform-abstracted block lattice for external access and inter-block interaction.
This class calculates the chemical potential and stores it in the external field of the respective la...
FreeEnergyChemicalPotentialCoupling3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T alpha_, T kappa1_, T kappa2_, T kappa3_, std::vector< BlockStructureD< 3 > * > partners_)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
int extent() const override
Extent of application area (0 for purely local operations)
Generator class for the PostProcessors calculating the chemical potential.
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
FreeEnergyChemicalPotentialGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T alpha_, T kappa1_, T kappa2_)
Two component free energy model.
PostProcessor for setting a constant density outlet.
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
FreeEnergyDensityOutletCoupling3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T rho_, std::vector< BlockStructureD< 3 > * > partners_)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
int extent() const override
Extent of application area (0 for purely local operations)
Generator class for the PostProcessors assigning the density boundary condition at the outlet.
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
FreeEnergyDensityOutletGenerator3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, T rho_)
PostProcessor calculating the interfacial force in the free energy model.
FreeEnergyForceCoupling3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, std::vector< BlockStructureD< 3 > * > partners_)
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
int extent() const override
Extent of application area (0 for purely local operations)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
Generator class for the PostProcessors calculating the interfacial force.
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
FreeEnergyForceGenerator3D()
PostProcessor for assigning the velocity at inlet and outlets to lattice two and three.
int extent() const override
Extent of application area (0 for purely local operations)
int extent(int whichDirection) const override
Extent of application area along a direction (0 or 1)
void processSubDomain(BlockLattice< T, DESCRIPTOR > &blockLattice, int x0_, int x1_, int y0_, int y1_, int z0_, int z1_) override
Execute post-processing step on a sublattice.
void process(BlockLattice< T, DESCRIPTOR > &blockLattice) override
Execute post-processing step.
FreeEnergyInletOutletCoupling3D(int x0_, int x1_, int y0_, int y1_, int z0_, int z1_, std::vector< BlockStructureD< 3 > * > partners_)
Generator class for the PostProcessors assigning the velocity at the outlet to lattice two and three.
LatticeCouplingGenerator3D< T, DESCRIPTOR > * clone() const override
FreeEnergyInletOutletGenerator3D()
PostProcessor3D< T, DESCRIPTOR > * generate(std::vector< BlockStructureD< 3 > * > partners) const override
Top level namespace for all of OpenLB.
Interface for post-processing steps – header file.
Base of a field whose size is defined by [C,U_1,...,U_N]^T * [1,V_1,...V_N].