LCS::ContinuousFlowField< T, Func, Dim > Class Template Reference

Class for flow fields with a continous velocity function. More...

#include <flow.hpp>

Public Member Functions

 ContinuousFlowField (unsigned nx, unsigned ny)
 
 ContinuousFlowField (unsigned nx, unsigned ny, std::vector< T > &parameters)
 
void SetCurrentVelocity ()
 
ContinuousVelocity< T, Func,
Dim > & 
CurrentVelocity ()
 
void CopyInitialPositionToCurrentPosition ()
 
void SetDirection (const Direction direction)
 
- Public Member Functions inherited from LCS::FlowField< T, Dim >
 FlowField (unsigned nx, unsigned ny)
 
auto & InitialPosition ()
 
auto & CurrentPosition ()
 
auto GetTime ()
 
auto GetDirection ()
 
void SetDelta (const T delta)
 
void SetStep (const unsigned step)
 
void SetInitialTime (const T time)
 
void UpdateTime ()
 
void UpdateTime (const T time)
 
void Run ()
 

Additional Inherited Members

- Protected Attributes inherited from LCS::FlowField< T, Dim >
const unsigned nx_
 
const unsigned ny_
 
delta_
 
initial_time_
 
current_time_
 
unsigned step_
 
Direction direction_ = Forward
 
std::unique_ptr< Position< T,
Dim > > 
initial_pos_
 
std::unique_ptr< Position< T,
Dim > > 
current_pos_
 
std::shared_ptr< Velocity< T,
Dim > > 
current_vel_
 

Detailed Description

template<typename T, typename Func, unsigned Dim>
class LCS::ContinuousFlowField< T, Func, Dim >

Class for flow fields with a continous velocity function.

This class is used for representing flow fields with a given continous velocity function, which means that we could obtain the exact velocities of any point in the field.

Template Parameters
TNumeric data type of all the numeric values in the flow.
FuncContinous velocity function for this field.
DimDimension of the flow field (2 or 3).
Inheritance diagram for LCS::ContinuousFlowField< T, Func, Dim >:
LCS::FlowField< T, Dim >

Constructor & Destructor Documentation

template<typename T , typename Func , unsigned Dim>
LCS::ContinuousFlowField< T, Func, Dim >::ContinuousFlowField ( unsigned  nx,
unsigned  ny 
)
inline

Constructor for initializating the flow field.

Parameters
nxThe number of grid points in $x$-direction.
nyThe number of grid points in $y$-direction.
template<typename T , typename Func , unsigned Dim>
LCS::ContinuousFlowField< T, Func, Dim >::ContinuousFlowField ( unsigned  nx,
unsigned  ny,
std::vector< T > &  parameters 
)
inline

Constructor for initializating the flow field that the velocity function has parameters.

Parameters
nxThe number of grid points in $x$-direction.
nyThe number of grid points in $y$-direction.
parametersA vector that contains all the parameters of the velocity function.

Member Function Documentation

template<typename T , typename Func , unsigned Dim>
void LCS::ContinuousFlowField< T, Func, Dim >::CopyInitialPositionToCurrentPosition ( )
inlinevirtual

Copy the initial position to the current position.

Reimplemented from LCS::FlowField< T, Dim >.

template<typename T , typename Func , unsigned Dim>
ContinuousVelocity<T, Func, Dim>& LCS::ContinuousFlowField< T, Func, Dim >::CurrentVelocity ( )
inlinevirtual

Get the velocity field at the current time

Returns
ContinuousVelocity field that contains the current velocities.

Reimplemented from LCS::FlowField< T, Dim >.

template<typename T , typename Func , unsigned Dim>
void LCS::ContinuousFlowField< T, Func, Dim >::SetCurrentVelocity ( )
inlinevirtual

Calculate and set the current velocities of the flow particles using the velocity function.

Reimplemented from LCS::FlowField< T, Dim >.

template<typename T , typename Func , unsigned Dim>
void LCS::ContinuousFlowField< T, Func, Dim >::SetDirection ( const Direction  direction)
inlinevirtual

Set the advection direction.

Parameters
directionDirection for particle advection.

Reimplemented from LCS::FlowField< T, Dim >.


The documentation for this class was generated from the following file: