ViennaLS
Loading...
Searching...
No Matches
lsVelocityField.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
4
5#include <vcVectorUtil.hpp>
6
7namespace viennals {
8
9using namespace viennacore;
10
13template <class T> class VelocityField {
14public:
16
19 virtual T getScalarVelocity(const Vec3D<T> & /*coordinate*/, int /*material*/,
20 const Vec3D<T> & /*normalVector*/,
21 unsigned long /*pointId*/) {
22 return 0;
23 }
24
27 virtual Vec3D<T> getVectorVelocity(const Vec3D<T> & /*coordinate*/,
28 int /*material*/,
29 const Vec3D<T> & /*normalVector*/,
30 unsigned long /*pointId*/) {
31 return {0, 0, 0};
32 }
33
37 virtual T getDissipationAlpha(int /*direction*/, int /*material*/,
38 const Vec3D<T> & /*centralDifferences*/) {
39 return 0;
40 }
41
42 virtual ~VelocityField() {}
43};
44
45} // namespace viennals
Abstract class defining the interface for the velocity field used during advection using lsAdvect.
Definition lsVelocityField.hpp:13
virtual T getScalarVelocity(const Vec3D< T > &, int, const Vec3D< T > &, unsigned long)
Should return a scalar value for the velocity at coordinate for a point of material with the given no...
Definition lsVelocityField.hpp:19
VelocityField()
Definition lsVelocityField.hpp:15
virtual T getDissipationAlpha(int, int, const Vec3D< T > &)
If lsLocalLaxFriedrichsAnalytical is used as the advection scheme, this is called to provide the anal...
Definition lsVelocityField.hpp:37
virtual Vec3D< T > getVectorVelocity(const Vec3D< T > &, int, const Vec3D< T > &, unsigned long)
Like getScalarVelocity, but returns a velocity value for each cartesian direction.
Definition lsVelocityField.hpp:27
virtual ~VelocityField()
Definition lsVelocityField.hpp:42
Definition lsAdvect.hpp:46
double T
Definition pyWrap.cpp:63