Marine systems simulation
PelletField Class Reference
+ Inheritance diagram for PelletField:
+ Collaboration diagram for PelletField:

Public Member Functions

 PelletField (std::string sSimObjectName, ISimObjectCreator *pCreator)
 The constructor sets the pointer to the output object and the parser object.
 
void FinalSetup (const double T, const double *const X, ISimObjectCreator *const creator)
 
void InitialConditionSetup (const double T, const double *const currentIC, double *const updatedIC, ISimObjectCreator *const creator)
 
void OdeFcn (const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
 
int getIndex (int x, int y, int z)
 
void calcAdvectAndDiff (double T, const double *const adX, double *const adXDot)
 
void calcAdvectAndDiffWorker (double T, double dt, const double *const adX, double *const adXDot, int kstart, int kend)
 
int * getIndexFromPos (Eigen::Vector3d position)
 
double getConcentration (Eigen::Vector3d position, const double *const X)
 
double getConcentrationAndGradient (Eigen::Vector3d position, const double *const X, double *gradient)
 
double removePellet (Eigen::Vector3d position, const double *const X, IStateUpdater *updater)
 
double getPelletWeight ()
 
double getTotalFeed (const double *const X)
 
double superbeeAdv (double dt, double dx, double c_ll, double c_l, double c_c, double c_r, double c_rr, double v_l, double v_r)
 
bool checkSign (double value, bool signToTest)
 
double minmod (double v1, double v2)
 
double maxmod (double v1, double v2)
 
void PreOdeFcn (const double T, const double *const X, IStateUpdater *updater)
 
virtual const double * ConcAtRefPos (const double T, const double *const X, int iPos)
 
virtual const double * concOutputAtStaticPos (const double dT, const double *const adX, int iExtNode)
 
virtual const double * OutputIngestion (const double T, const double *const X)
 

Static Public Attributes

static const int USE_SIMPLE_FISH_MODEL = 0
 

Protected Member Functions

std::vector< std::string > SplitString (std::string sData, std::string separator)
 
virtual const double * Position (const double dT, const double *const adX)
 
double getAtPos (int i, int j, int k, const double *const X)
 
void setVarValFromInputPort (ISignalPort *inputPort, double *varVal, int nVal, const double T, const double *const X)
 Internal (to PelletField) function setting varVal equal to inputPort.
 

Protected Attributes

ISimObjectCreator * m_pCreator
 
const double * local_adX
 
double * local_adXdot
 
int m_nRefPosOutputs
 
ISignalPort ** m_refPos
 
double * m_concAtRefPos
 
int m_state_feed
 
int m_numThreads
 
int m_bstates
 
int m_iwaste
 
int m_iingestion
 
int m_nfishstates
 
int m_isimplefish
 
double m_time_last = -1
 
double m_dx
 
double m_sinkingSpeed
 
double m_diffKappaXY
 
double m_diffKappaZ
 
int m_imax
 
int m_jmax
 
int m_kmax
 
double m_cageRad
 
double m_cageCylDepth
 
double m_cageTotDepth
 
int m_feederCenterX
 
int m_feederCenterY
 
int m_feederType
 
int m_feederTilt
 
double m_feederAirSpeed
 
double m_feederAngle
 
double m_simpleFishN
 
double m_simpleFishW
 
double m_simpleFishStd
 
int m_feedingLevel
 
double m_feedingRateMult
 
double m_pelletWeight
 
double m_totalFeed
 
double m_temperature
 
vector< double > m_advect
 
vector< double > m_diffus
 
vector< double > m_feeding
 
vector< vector< double > > m_feedingRate
 
bool * m_mask
 
vector< vector< vector< vector< double > > > > m_currentField
 
vector< vector< int > > m_cellOffsets
 
int m_readCurrentField
 
int m_outputcounter
 
SpreaderModelm_spreaderModel
 
SimpleFishm_simpleFish
 
int m_nStaticSensorPoints
 
ISignalPort ** m_staticPosInputs
 
double * m_staticPosOutputs
 
IBasicBottom ** m_bottom
 
ICurrentVel ** m_currentVel
 
CEnvironmentm_environment
 
bool m_boolCagePos
 Boolean indicating whether time dependent cage position is received or not.
 
bool m_boolMoveGrid
 Boolean. If true, the grid is moving with the centre of the grid. m_gridCentre will be equal to m_cageCentre (stepwise limited by the size of the cells).
 
ISignalPort * m_cageCentreNED
 Input port receiving (x,y,z) coordinates in NED frame of cage top position. x and y are used in the calculations.
 
float * m_gridCentre
 Grid centre in cartesian coordinates. Fixed during simulation if m_boolMoveGrid equals false. Follows m_cageCentre (discrete adjusted for grid) if m_boolMoveGrid is true. Initial value: set to centre of netcage.
 
float * m_gridCentreInit
 Grid centre in cartesian coordinates. Initial value.
 
int m_di_grid
 
int m_dj_grid
 
int m_di_gLast
 
int m_dj_gLast
 
int * m_dij_tot
 Total movement of grid centre (since initialization) in grid coordinates (i,j).
 
double * m_cageCentre
 Time dependent centre postion of cage. Updated by input port m_cageCentreNED.
 
int m_nFeedingPeriods
 Number of feeding periods in feeding regime.
 
double ** m_feedingRegime
 Feeding regime with first dimension being m_nFeedingPeriods and second dimension being [startup time in s, duration in s, feed delivery in g].
 
bool m_boolVarFeedRate
 Feeding (time and rate) determined by input during simulation.
 
double m_dynFeedRate
 Feeding rate (g/s, grams/second) set by input port.
 
ISignalPort * m_feedRateIn
 Signal port. Input port receiving feeding rate in g/s, (grams/second).
 
std::string m_startDateString
 String describing the start date for the data to be used.
 
double m_prevTextOutputTime
 
int m_pelletsEaten
 
double m_IngestionRate [3]
 
double m_CurrentReduction
 
double m_UpdateStepSize
 
int m_UpdateNum
 
int m_SINum
 
bool m_useTankFeeding
 Boolean. True if tank feeding pattern should be used.
 
bool m_useFeedAsExperimentalO2Proxy
 Boolean. True if feed distribution model shall be used as O2 level proxy.
 

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