Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91067833
BodyForce.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Nov 7, 13:03
Size
1 KB
Mime Type
text/x-c
Expires
Sat, Nov 9, 13:03 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
21750609
Attached To
rLAMMPS lammps
BodyForce.h
View Options
#ifndef BODY_FORCE_H
#define BODY_FORCE_H
#include <map>
#include <string>
#include "ATC_TypeDefs.h"
#include "Function.h"
namespace ATC {
/**
* @class BodyForce
* @brief Base class for models of body forces in the momentum eqn
*/
class BodyForce
{
public:
BodyForce() {};
virtual ~BodyForce() {};
virtual bool body_force(const FIELD_MATS &fields,
DENS_MAT &flux) const { return false; };
};
/**
* @class BodyForceViscous
* @brief viscous body forces
*/
class BodyForceViscous : public BodyForce
{
public:
BodyForceViscous(std::fstream &matfile,std::map<std::string,double> & parameters);
virtual ~BodyForceViscous() {};
virtual bool body_force(const FIELD_MATS &fields,
DENS_MAT &flux) const
{
FIELD_MATS::const_iterator v_field = fields.find(VELOCITY);
const DENS_MAT & v = v_field->second;
flux = -gamma_*v;
return true;
}
protected:
double gamma_;
};
/**
* @class BodyForceElectricField
* @brief electric field body forces
*/
class BodyForceElectricField : public BodyForce
{
public:
BodyForceElectricField(std::fstream &matfile,std::map<std::string,double> & parameters)
{ throw ATC_Error("unimplemented due to issues with accessing electric field"); }
virtual ~BodyForceElectricField() {};
virtual bool body_force(const FIELD_MATS &fields,
DENS_MAT &flux) const
{
FIELD_MATS::const_iterator v_field = fields.find(VELOCITY);
const DENS_MAT & v = v_field->second;
int nNodes = v.nRows();
flux.reset(nNodes,1);
return true;
}
};
}
#endif
Event Timeline
Log In to Comment