19 #include <unordered_map>
50 virtual double pressure(
double x,
double y,
double z)=0;
58 virtual double density(
double x,
double y,
double z)=0;
69 virtual void velocity(
double x,
double y,
double z,
double& vX,
double& vY,
double& vZ)=0;
118 virtual double pressure(
double x,
double y,
double z);
127 virtual double density(
double x,
double y,
double z);
139 virtual void velocity(
double x,
double y,
double z,
double& vX,
double& vY,
double& vZ);
142 double m_fVelX, m_fVelY, m_fVelZ;
143 double m_fPCenX, m_fPCenY, m_fPCenZ;
188 virtual double pressure(
double x,
double y,
double z);
197 virtual double density(
double x,
double y,
double z);
209 virtual void velocity(
double x,
double y,
double z,
double& vX,
double& vY,
double& vZ);
214 double m_fCenX, m_fCenY, m_fCenZ;
245 typedef State* (*StateCreateFunc)();
302 State* createState(std::string name);
305 std::unordered_map<std::string, StateCreateFunc> stateTable;
312 #endif // __STATE_H__
virtual ~GaussianPressureState()
Destructor.
Definition: state.h:109
The abstract factory class for creating objects in the State family.
Definition: state.h:240
virtual double density(double x, double y, double z)
Specifies a constant value as specified in constructor implementation.
Definition: state.cpp:17
A class that implements the Gaussian pressure state.
Definition: state.h:103
virtual ~State()
Destructor.
Definition: state.h:73
State *(* StateCreateFunc)()
Defines a function pointer pointing to a function which creates objects in the State family...
Definition: state.h:245
virtual void velocity(double x, double y, double z, double &vX, double &vY, double &vZ)
Specifies uniform velocity as specified in constructor implementation.
Definition: state.cpp:21
virtual double density(double x, double y, double z)=0
Calculates density based on the Cartesian coordinate (x,y,z) of a particle.
An abstract class for the initialization of the state of fluid objects.
Definition: state.h:41
GaussianPressureState()
Constructor.
Definition: state.cpp:10
static StateFactory & instance()
Returns reference to a Singleton object of class StateFactory.
Definition: state.cpp:75
virtual double pressure(double x, double y, double z)=0
Calculates pressure based on the Cartesian coordinate (x,y,z) of a particle.
virtual double pressure(double x, double y, double z)
Calculates pressure based on the Cartesian coordinate (x,y,z) of a particle and Gaussian distribution...
Definition: state.cpp:13
virtual void velocity(double x, double y, double z, double &vX, double &vY, double &vZ)=0
Calculates velocity based on the Cartesian coordinate (x,y,z) of a particle.
void registerState(std::string name, StateCreateFunc func)
Registers (links) the state name name with the function func for creating objects in the State family...
Definition: state.cpp:89