MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
RandomDCR Struct Reference
Inheritance diagram for RandomDCR:
Collaboration diagram for RandomDCR:

Public Member Functions

DriveCallerRead (const DataManager *pDM, MBDynParser &HP, bool bDeferred)
 
- Public Member Functions inherited from DriveCallerRead
virtual ~DriveCallerRead (void)
 

Additional Inherited Members

- Static Public Member Functions inherited from DriveCallerRead
static void ReadOutput (DriveCaller *pDC, const DataManager *pDM, MBDynParser &HP)
 
- Protected Member Functions inherited from DriveCallerRead
void NeedDM (const DataManager *pDM, MBDynParser &HP, bool bDeferred, const char *const name)
 

Detailed Description

Definition at line 2223 of file drive_.cc.

Member Function Documentation

DriveCaller * RandomDCR::Read ( const DataManager pDM,
MBDynParser HP,
bool  bDeferred 
)
virtual

Implements DriveCallerRead.

Definition at line 2229 of file drive_.cc.

References DEBUGCOUT, HighParser::GetInt(), HighParser::GetReal(), HighParser::IsKeyWord(), DriveCallerRead::NeedDM(), DataManager::pGetDrvHdl(), and SAFENEWWITHCONSTRUCTOR.

2230 {
2231  NeedDM(pDM, HP, bDeferred, "random");
2232 
2233  const DriveHandler* pDrvHdl = 0;
2234  if (pDM != 0) {
2235  pDrvHdl = pDM->pGetDrvHdl();
2236  }
2237 
2238  DriveCaller *pDC = 0;
2239 
2240  /* Numero casuale */
2241  doublereal dAmplitude = HP.GetReal(1.);
2242  DEBUGCOUT("Amplitude value: " << dAmplitude << std::endl);
2243 
2244  doublereal dRefVal = HP.GetReal();
2245  DEBUGCOUT("Mean value: " << dRefVal << std::endl);
2246 
2247  doublereal dInitialTime = HP.GetReal();
2248  DEBUGCOUT("Initial time: " << dInitialTime << std::endl);
2249 
2250  doublereal dFinalTime = std::numeric_limits<double>::max();
2251  if (!HP.IsKeyWord("forever")) {
2252  dFinalTime = HP.GetReal();
2253  }
2254  DEBUGCOUT("Final time: " << dFinalTime << std::endl);
2255 
2256  /* Type of random number (additional data) */
2257  integer iSteps = 1;
2258  while (true) {
2259  if (HP.IsKeyWord("steps")) {
2260  iSteps = HP.GetInt();
2261  if (iSteps <= 0) {
2262  silent_cerr("Warning: Steps number " << iSteps
2263  << " is illegal; resorting to default value" << std::endl);
2264  iSteps = 1;
2265  }
2266  DEBUGCOUT("Force changes every " << iSteps
2267  << " steps" << std::endl);
2268 
2269  } else if (HP.IsKeyWord("seed")) {
2270  if (HP.IsKeyWord("time")) {
2271  DEBUGCOUT("(Re)Seeding random numbers with current time ...");
2272  srand(time(0));
2273  } else {
2274  DEBUGCOUT("(Re)Seeding random numbers with given value ...");
2275  srand(HP.GetInt());
2276  }
2277  } else {
2278  break;
2279  }
2280  }
2281 
2284  RandDriveCaller(pDrvHdl, dAmplitude, dRefVal, dInitialTime, dFinalTime, iSteps));
2285 
2286  return pDC;
2287 }
virtual integer GetInt(integer iDefval=0)
Definition: parser.cc:1050
const DriveHandler * pGetDrvHdl(void) const
Definition: dataman.h:340
virtual bool IsKeyWord(const char *sKeyWord)
Definition: parser.cc:910
#define DEBUGCOUT(msg)
Definition: myassert.h:232
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
void NeedDM(const DataManager *pDM, MBDynParser &HP, bool bDeferred, const char *const name)
Definition: drive_.cc:1354
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual doublereal GetReal(const doublereal &dDefval=0.0)
Definition: parser.cc:1056

Here is the call graph for this function:


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