27#ifndef PHASE_FIELD_INLET_OUTLET_2D_H
28#define PHASE_FIELD_INLET_OUTLET_2D_H
40template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
41requires (DESCRIPTOR::d == 2)
85template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
86requires (DESCRIPTOR::d == 2)
131template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
132requires (DESCRIPTOR::d == 2)
178template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
179requires (DESCRIPTOR::d == 2)
198 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
202 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
217template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
218requires (DESCRIPTOR::d == 2)
219struct FreeEnergyVelocity<T,DESCRIPTOR,MixinDynamics> {
266template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
267requires (DESCRIPTOR::d == 2)
268struct FreeEnergyPressure<T,DESCRIPTOR,MixinDynamics> {
286 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
290 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
305 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
309 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
319template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR,
typename MixinDynamics>
320requires (DESCRIPTOR::d == 2)
321struct FreeEnergyPressureConvective<T,DESCRIPTOR,MixinDynamics> {
339 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
343 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
358 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
362 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
372template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR>
373requires (DESCRIPTOR::d == 2)
374struct FreeEnergyOrderParameter<T,DESCRIPTOR> {
420template <concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR>
421requires (DESCRIPTOR::d == 2)
422struct FreeEnergyOrderParameterConvective<T,DESCRIPTOR> {
439 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
443 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
458 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
462 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
Regularized BGK collision followed by any other Dynamics.
Implementation of Dirichlet boundary condition for the order parameter.
In this file the dynamic calls for the free energy model is implemented.
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormal(Vector< int, 2 > n)
Top level namespace for all of OpenLB.
DiscreteNormalType
Type associated with a discrete normal vector.
@ ExternalCorner
Normal detected as flat plane.
@ InternalCorner
Normal detected as external corner.
std::int64_t CellDistance
Type for in-memory distance of block-local cell indices.
Implementation of convective boundary condition for the order parameter.
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
CellDistance getNeighborhoodRadius()
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics(DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
CellDistance getNeighborhoodRadius()