MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
DoubleStepDriveCaller Class Reference

#include <drive_.h>

Inheritance diagram for DoubleStepDriveCaller:
Collaboration diagram for DoubleStepDriveCaller:

Public Member Functions

 DoubleStepDriveCaller (const DriveHandler *pDH, doublereal d1, doublereal d2, doublereal d3, doublereal d4)
 
 ~DoubleStepDriveCaller (void)
 
virtual DriveCallerpCopy (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
doublereal dGet (const doublereal &dVar) const
 
virtual bool bIsDifferentiable (void) const
 
virtual doublereal dGetP (const doublereal &dVar) const
 
- Public Member Functions inherited from DriveCaller
 DriveCaller (const DriveHandler *pDH)
 
virtual ~DriveCaller (void)
 
virtual doublereal dGet (void) const
 
virtual doublereal dGetP (void) const
 
virtual void SetDrvHdl (const DriveHandler *pDH)
 
virtual const DriveHandlerpGetDrvHdl (void) const
 
virtual void Output (OutputHandler &OH) const
 
virtual void Trace (OutputHandler &OH) const
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from Traceable
 Traceable (flag fTrace=0)
 
virtual ~Traceable (void)
 
virtual flag fToBeTraced (void) const
 
virtual void SetTraceFlag (flag f=TRACE)
 

Private Attributes

doublereal dStepTime
 
doublereal dStepValue
 
doublereal dEndStepTime
 
doublereal dInitialValue
 

Additional Inherited Members

- Public Types inherited from DriveCaller
enum  OutputFlags { OUTPUT_VALUE = OUTPUT_PRIVATE << 0, OUTPUT_DERIVATIVE = OUTPUT_PRIVATE << 1 }
 
enum  TraceFlags { TRACE_VALUE = TRACE_PRIVATE << 0, TRACE_DERIVATIVE = TRACE_PRIVATE << 1 }
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from Traceable
enum  { TRACE = 0x01U, TRACE_PUBLIC_MASK = 0x0FU, TRACE_PRIVATE = 0x10U, TRACE_PRIVATE_MASK = ~TRACE_PUBLIC_MASK }
 
- Protected Attributes inherited from DriveCaller
DriveHandlerpDrvHdl
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 

Detailed Description

Definition at line 504 of file drive_.h.

Constructor & Destructor Documentation

DoubleStepDriveCaller::DoubleStepDriveCaller ( const DriveHandler pDH,
doublereal  d1,
doublereal  d2,
doublereal  d3,
doublereal  d4 
)

Definition at line 424 of file drive_.cc.

References NO_OP.

Referenced by pCopy().

426 : DriveCaller(pDH), dStepTime(d1), dStepValue(d2),
428 {
429  NO_OP;
430 }
doublereal dEndStepTime
Definition: drive_.h:508
#define NO_OP
Definition: myassert.h:74
DriveCaller(const DriveHandler *pDH)
Definition: drive.cc:475
doublereal dStepTime
Definition: drive_.h:506
doublereal dInitialValue
Definition: drive_.h:509
doublereal dStepValue
Definition: drive_.h:507
DoubleStepDriveCaller::~DoubleStepDriveCaller ( void  )

Definition at line 432 of file drive_.cc.

References NO_OP.

433 {
434  NO_OP;
435 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

bool DoubleStepDriveCaller::bIsDifferentiable ( void  ) const
inlinevirtual

Reimplemented from DriveCaller.

Definition at line 552 of file drive_.h.

553 {
554  return true;
555 }
doublereal DoubleStepDriveCaller::dGet ( const doublereal dVar) const
inlinevirtual

Implements DriveCaller.

Definition at line 537 of file drive_.h.

References dEndStepTime, dInitialValue, dStepTime, and dStepValue.

538 {
539  if (dVar > dStepTime && dVar < dEndStepTime) {
540  return dStepValue;
541  }
542 
543  if (dVar < dStepTime || dVar > dEndStepTime) {
544  return dInitialValue;
545  }
546 
547  /* else if dVar == dStepTime || dVar == dEndStepTime */
548  return (dInitialValue + dStepValue)/2.;
549 }
doublereal dEndStepTime
Definition: drive_.h:508
doublereal dStepTime
Definition: drive_.h:506
doublereal dInitialValue
Definition: drive_.h:509
doublereal dStepValue
Definition: drive_.h:507
doublereal DoubleStepDriveCaller::dGetP ( const doublereal dVar) const
inlinevirtual

Reimplemented from DriveCaller.

Definition at line 558 of file drive_.h.

References dEndStepTime, dStepTime, and MBDYN_EXCEPT_ARGS.

559 {
560  /* FIXME: what if we get exactly to the step time? */
561  if (dVar == dStepTime || dVar == dEndStepTime) {
562  silent_cerr("singularity in double step drive derivative at " << dVar << std::endl);
564  }
565 
566  return 0.;
567 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
doublereal dEndStepTime
Definition: drive_.h:508
doublereal dStepTime
Definition: drive_.h:506
DriveCaller * DoubleStepDriveCaller::pCopy ( void  ) const
virtual

Implements DriveCaller.

Definition at line 440 of file drive_.cc.

References dEndStepTime, dInitialValue, DoubleStepDriveCaller(), dStepTime, dStepValue, DriveCaller::pDrvHdl, and SAFENEWWITHCONSTRUCTOR.

441 {
442  DriveCaller* pDC = 0;
446  return pDC;
447 }
doublereal dEndStepTime
Definition: drive_.h:508
doublereal dStepTime
Definition: drive_.h:506
DoubleStepDriveCaller(const DriveHandler *pDH, doublereal d1, doublereal d2, doublereal d3, doublereal d4)
Definition: drive_.cc:424
DriveHandler * pDrvHdl
Definition: drive.h:444
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
doublereal dInitialValue
Definition: drive_.h:509
doublereal dStepValue
Definition: drive_.h:507

Here is the call graph for this function:

std::ostream & DoubleStepDriveCaller::Restart ( std::ostream &  out) const
virtual

Implements DriveCaller.

Definition at line 452 of file drive_.cc.

References dEndStepTime, dInitialValue, dStepTime, and dStepValue.

453 {
454  return out
455  << " double step, " << dStepTime
456  << ", " << dEndStepTime
457  << ", " << dStepValue
458  << ", " << dInitialValue;
459 }
doublereal dEndStepTime
Definition: drive_.h:508
doublereal dStepTime
Definition: drive_.h:506
doublereal dInitialValue
Definition: drive_.h:509
doublereal dStepValue
Definition: drive_.h:507

Member Data Documentation

doublereal DoubleStepDriveCaller::dEndStepTime
private

Definition at line 508 of file drive_.h.

Referenced by dGet(), dGetP(), pCopy(), and Restart().

doublereal DoubleStepDriveCaller::dInitialValue
private

Definition at line 509 of file drive_.h.

Referenced by dGet(), pCopy(), and Restart().

doublereal DoubleStepDriveCaller::dStepTime
private

Definition at line 506 of file drive_.h.

Referenced by dGet(), dGetP(), pCopy(), and Restart().

doublereal DoubleStepDriveCaller::dStepValue
private

Definition at line 507 of file drive_.h.

Referenced by dGet(), pCopy(), and Restart().


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