13template<
class T,
int d>
18 : MGrid(
Grid), MVelocity(MGrid), MDensity(MGrid), MDirichlet(MGrid), MNeumann(MGrid), MCollisionParticles(
MoveTemp(GeometryParticles)), MSourceParticles(
MoveTemp(
SourceParticles))
28 inline void SetAdvectionFunction(
TFunction<
void(
const TUniformGrid<T, d>&,
TArrayND<T, d>&,
const TArrayND<T, d>&,
const TArrayFaceND<T, d>&,
const T,
const TVector<int32, d>)>
AdvectionFunction) { MAdvectionRule =
AdvectionFunction; }
29 inline void SetConvectionFunction(
TFunction<
void(
const TUniformGrid<T, d>&,
TArrayND<T, d>&,
const TArrayND<T, d>&,
const TArrayFaceND<T, d>&,
const T,
const TVector<int32, d>)>
ConvectionFunction) { MConvectionRule =
ConvectionFunction; }
40 for (
int32 i = 0; i < MGrid.GetNumCells(); ++i)
43 for (
int32 j = 0; j < d; ++j)
50 return Divergence / (T)MGrid.Counts().Product();
62 TFunction<
void(
const TUniformGrid<T, d>&,
TArrayND<T, d>&,
const TArrayND<T, d>&,
const TArrayFaceND<T, d>&,
const T,
const TVector<int32, d>)> MAdvectionRule;
63 TFunction<
void(
const TUniformGrid<T, d>&,
TArrayND<T, d>&,
const TArrayND<T, d>&,
const TArrayFaceND<T, d>&,
const T,
const TVector<int32, d>)> MConvectionRule;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ArrayFaceND.h:14
Definition KinematicGeometryParticles.h:13
Definition SmokeEvolution.h:15
TArrayND< T, d > & Density()
Definition SmokeEvolution.h:35
~TSmokeEvolution()
Definition SmokeEvolution.h:23
void AddForceFunction(TFunction< void(const TUniformGrid< T, d > &, TArrayFaceND< T, d > &, const T, const Pair< int32, TVector< int32, d > >)> ForceFunction)
Definition SmokeEvolution.h:27
const TArrayND< T, d > & Density() const
Definition SmokeEvolution.h:34
TSmokeEvolution(const TUniformGrid< T, d > &Grid, TKinematicGeometryParticles< T, d > &&GeometryParticles, TKinematicGeometryParticles< T, d > &&SourceParticles)
Definition SmokeEvolution.h:17
void SetAdvectionFunction(TFunction< void(const TUniformGrid< T, d > &, TArrayND< T, d > &, const TArrayND< T, d > &, const TArrayFaceND< T, d > &, const T, const TVector< int32, d >)> AdvectionFunction)
Definition SmokeEvolution.h:28
void SetConvectionFunction(TFunction< void(const TUniformGrid< T, d > &, TArrayND< T, d > &, const TArrayND< T, d > &, const TArrayFaceND< T, d > &, const T, const TVector< int32, d >)> ConvectionFunction)
Definition SmokeEvolution.h:29
const TUniformGrid< T, d > & Grid() const
Definition SmokeEvolution.h:32
void SetProjectionFunction(TFunction< void(const TUniformGrid< T, d > &, TArrayFaceND< T, d > &, const TArrayND< bool, d > &, const TArrayFaceND< bool, d > &, const T)> ProjectionFunction)
Definition SmokeEvolution.h:30
void AdvanceOneTimeStep(const T Dt)
Definition SmokeEvolution.cpp:10
const T ComputeDivergence()
Definition SmokeEvolution.h:37
const TArrayFaceND< T, d > & Velocity() const
Definition SmokeEvolution.h:33
Definition AndroidPlatformMisc.h:14
Definition SkeletalMeshComponent.h:307
Pair< T1, T2 > MakePair(const T1 &First, const T2 &Second)
Definition Pair.h:45