OpenLB 1.7
Loading...
Searching...
No Matches
indicMod.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2021 Jan E. Marquardt
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#ifndef INDIC_MOD_H
25#define INDIC_MOD_H
26
27#include "utilities/aliases.h"
29
30namespace olb {
31
32template <typename S, unsigned D>
43
44template <typename S, unsigned D>
45class IndicScale : public IndicatorF<S, D> {
46protected:
49
50public:
51 IndicScale(FunctorPtr<IndicatorF<S, D>> f, S scalingFactor = S {1});
52 void setScalingFactor(const S scalingFactor);
55 S signedDistance(const Vector<S, D>& input);
56};
57
58template <typename S, unsigned D>
59class IndicElongation : public IndicatorF<S, D> {
60protected:
63
64public:
66 void setElongation(const Vector<S,D>& elongation);
69 S signedDistance(const Vector<S, D>& input);
70};
71
72} // namespace olb
73#endif
Smart pointer for managing the various ways of passing functors around.
Definition functorPtr.h:60
void setElongation(const Vector< S, D > &elongation)
Definition indicMod.hh:107
Vector< S, D > getEstimatedCenter()
Definition indicMod.hh:121
FunctorPtr< IndicatorF< S, D > > _f
Definition indicMod.h:61
S signedDistance(const Vector< S, D > &input)
Definition indicMod.hh:127
Vector< S, D > _elongation
Definition indicMod.h:62
Vector< S, D > getElongation()
Definition indicMod.hh:115
IndicElongation(FunctorPtr< IndicatorF< S, D > > f, const Vector< S, D > &elongation=Vector< S, D >(0.))
Definition indicMod.hh:100
FunctorPtr< IndicatorF< S, D > > _f
Definition indicMod.h:35
IndicInverse(FunctorPtr< IndicatorF< S, D > > f, PhysR< S, D > min, PhysR< S, D > max)
Definition indicMod.hh:32
S signedDistance(const Vector< S, D > &input)
Definition indicMod.hh:55
IndicScale(FunctorPtr< IndicatorF< S, D > > f, S scalingFactor=S {1})
Definition indicMod.hh:61
S signedDistance(const Vector< S, D > &input)
Definition indicMod.hh:89
Vector< S, D > getEstimatedCenter()
Definition indicMod.hh:82
void setScalingFactor(const S scalingFactor)
Definition indicMod.hh:68
FunctorPtr< IndicatorF< S, D > > _f
Definition indicMod.h:47
Plain old scalar vector.
Definition vector.h:47
Top level namespace for all of OpenLB.
std::conditional_t< D==2, IndicatorF2D< T >, IndicatorF3D< T > > IndicatorF
Definition aliases.h:258