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

Public Member Functions

 TrimEval (IO &io, ConvergenceCheck &cc)
 
 ~TrimEval (void)
 
int FuncEval (std::vector< double > &X, std::vector< double > &F, int nSteps, int maxSteps)
 

Protected Attributes

IOio
 
ConvergenceCheckcc
 

Detailed Description

Definition at line 416 of file trim.cc.

Constructor & Destructor Documentation

TrimEval::TrimEval ( IO io,
ConvergenceCheck cc 
)
inline

Definition at line 422 of file trim.cc.

422 : io(io), cc(cc) {};
ConvergenceCheck & cc
Definition: trim.cc:419
IO & io
Definition: trim.cc:418
TrimEval::~TrimEval ( void  )
inline

Definition at line 423 of file trim.cc.

423 {};

Member Function Documentation

int TrimEval::FuncEval ( std::vector< double > &  X,
std::vector< double > &  F,
int  nSteps,
int  maxSteps 
)

Definition at line 429 of file trim.cc.

References cc, ConvergenceCheck::Check(), IO::Controls(), io, IO::Measures(), IO::ReadMeasures(), and IO::SendControls().

Referenced by NRTrim::DoTrim().

430 {
431  if (X.size() != io.Controls().size()) {
432  return -1;
433  }
434 
435  std::vector<double> Xref(X.size());
436  std::vector<double> deltaX(X.size());
437 
438  for (unsigned int i = 0; i < X.size(); i++) {
439  Xref[i] = io.Controls()[i];
440  deltaX[i] = X[i] - Xref[i];
441  }
442 
443  int currStep;
444  for (currStep = 0; currStep < nSteps; currStep++) {
445  for (unsigned int i = 0; i < X.size(); i++) {
446  io.Controls()[i] = Xref[i] + (deltaX[i]*currStep)/nSteps;
447  }
448 
449  io.SendControls();
450  io.ReadMeasures();
451  }
452 
453  for (; currStep < maxSteps; currStep++) {
454  if (cc.Check(io.Measures())) {
455  return 1;
456  }
457 
458  io.SendControls();
459  io.ReadMeasures();
460  }
461 
462  return 0;
463 }
virtual bool Check(const std::vector< double > &measures)=0
int SendControls(void)
Definition: trim.cc:181
const std::vector< double > & Measures(void) const
Definition: trim.cc:177
ConvergenceCheck & cc
Definition: trim.cc:419
int ReadMeasures(void)
Definition: trim.cc:180
IO & io
Definition: trim.cc:418
std::vector< double > & Controls(void)
Definition: trim.cc:178

Here is the call graph for this function:

Member Data Documentation

ConvergenceCheck& TrimEval::cc
protected

Definition at line 419 of file trim.cc.

Referenced by FuncEval().

IO& TrimEval::io
protected

Definition at line 418 of file trim.cc.

Referenced by FuncEval().


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