OpenLB 1.7
Loading...
Searching...
No Matches
freeSurfacePostProcessor3D.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2021 Claudius Holeksa
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22*/
23
24#pragma once
25
28#include "core/postProcessing.h"
29#include "core/blockLattice.h"
30
31namespace olb {
32
42template<typename T, typename DESCRIPTOR>
65
66/*
67 * Free Surface Processor 4
68 * ToFluid
69 * Converts cells to interface from gas if a neighbouring cell was converted to a fluid cell
70 */
71template<typename T, typename DESCRIPTOR>
73public:
75
76 int getPriority() const {
77 return 4;
78 }
79
80 template <typename CELL>
81 void apply(CELL& cell) any_platform;
82
83};
84
90template<typename T, typename DESCRIPTOR>
92public:
94
95 int getPriority() const {
96 return 5;
97 }
98
99 template <typename CELL>
100 void apply(CELL& cell) any_platform;
101
102};
103
109template<typename T, typename DESCRIPTOR>
111public:
113
114 int getPriority() const {
115 return 6;
116 }
117
118 template <typename CELL>
119 void apply(CELL& cell) any_platform;
120
121};
122
127template<typename T, typename DESCRIPTOR>
129public:
131
132 int getPriority() const {
133 return 7;
134 }
135
136 template <typename CELL>
137 void apply(CELL& cell) any_platform;
138
139};
140
141/*
142* Setup helper
143*/
144template<typename T, typename DESCRIPTOR>
146public:
147private:
149
150 // SuperPostProcessors
151 // Corresponding to the local block processors
152public:
154
155 void addPostProcessor();
156};
157
158}
FreeSurface3DSetup(SuperLattice< T, DESCRIPTOR > &sLattice)
Free Surface Processor 7 Finishes up left over cell conversions and prepares the state for the next s...
Free Surface Processor 6 Calculates mass excess from the cell type conversions and distributes them t...
Free Surface Processor 1-3 Mass Flow Cleans up leftover flags from the previous simulation step.
void apply(CELL &cell, PARAMETERS &parameters) any_platform
meta::list< FreeSurface::DROP_ISOLATED_CELLS, FreeSurface::TRANSITION, FreeSurface::LONELY_THRESHOLD, FreeSurface::HAS_SURFACE_TENSION, FreeSurface::SURFACE_TENSION_PARAMETER, FreeSurface::FORCE_CONVERSION_FACTOR, FreeSurface::LATTICE_SIZE > parameters
Free Surface Processor 5 ToGas Converts cells to interface from fluid if a neighbouring cell was conv...
Super class maintaining block lattices for a cuboid decomposition.
Top level namespace for all of OpenLB.
OperatorScope
Block-wide operator application scopes.
Definition operator.h:54
@ PerCell
Per-cell application, i.e. OPERATOR::apply is passed a CELL concept implementation.
@ PerCellWithParameters
Per-cell application with parameters, i.e. OPERATOR::apply is passed a CELL concept implementation an...
#define any_platform
Define preprocessor macros for device-side functions, constant storage.
Definition platform.h:78
Interface for post-processing steps – header file.
Plain wrapper for list of types.
Definition meta.h:276