Brief description of class still missing. More...
#include <Forward.h>
Brief description of class still missing.
Full description of class still missing
Forward::Forward | ( | ) |
Forward::Forward | ( | ) |
Forward::Forward | ( | ) |
AbstractForward * Forward::clone | ( | ) | const [virtual] |
Implements DinverCore::AbstractForward.
References Forward(), setParamSpace(), setTargets(), and TRACE.
{ TRACE; Forward * forward=new Forward; forward->setTargets(new TargetList(*_targets)); // Returned value assumed to be true (was true for this) forward->setParamSpace(new ParamGroundModel(*_paramModel)); return forward; }
virtual AbstractForward* Forward::clone | ( | ) | const [virtual] |
Implements DinverCore::AbstractForward.
virtual AbstractForward* Forward::clone | ( | ) | const [virtual] |
Implements DinverCore::AbstractForward.
bool Forward::isFussyOk | ( | const Parameter * | p | ) | [inline, virtual] |
Reimplemented from DinverCore::AbstractForward.
References DinverDCCore::TargetList::isGroundModelParameter(), and DinverDCCore::TargetList::isPoissonRatioOk().
{ if(_targets->isGroundModelParameter(p)) { return _targets->isPoissonRatioOk(static_cast<const GroundParameter *>(p)); } else { return false; } }
virtual int Forward::maximumThreadCount | ( | ) | const [inline, virtual] |
Reimplemented from DinverCore::AbstractForward.
{return RAND_MAX;}
virtual int Forward::maximumThreadCount | ( | ) | const [inline, virtual] |
Reimplemented from DinverCore::AbstractForward.
{return RAND_MAX;}
double Forward::misfit | ( | bool & | ok | ) | [inline, virtual] |
This is the heart of the problem, enter here the forward and the misfit computation.
You can set ok to false if the input model contains unconsistent information. By default it is set to true.
Reimplemented from DinverCore::AbstractForward.
References DinverDCCore::TargetList::misfit(), DinverCore::AbstractForward::parameterSpace(), and TRACE.
{ TRACE; return _targets->misfit(parameterSpace().variableParameterCount(), ok); }
virtual double Forward::misfit | ( | bool & | ok | ) | [virtual] |
Provided for convenience, it calls misfit(double *, bool) to compute misfit from a vector of parameter values. Reimplement this function if you do not need values under this format (direct access to parameter space).
Reimplemented from DinverCore::AbstractForward.
virtual double Forward::misfit | ( | bool & | ok | ) | [virtual] |
Provided for convenience, it calls misfit(double *, bool) to compute misfit from a vector of parameter values. Reimplement this function if you do not need values under this format (direct access to parameter space).
Reimplemented from DinverCore::AbstractForward.
ParamSpaceScript* Forward::parameters | ( | ) | const [inline] |
Referenced by MatlabPlugin::setCurrentForward(), and ExtPlugin::setCurrentForward().
{return _param;}
ParamSpaceScript* Forward::parameters | ( | ) | const [inline] |
{return _param;}
ParamGroundModel* Forward::paramGroundModel | ( | ) | const [inline] |
Referenced by DCPlugin::setCurrentForward().
{return _paramModel;}
bool Forward::setParam | ( | ParamSpaceScript * | param | ) |
Referenced by MatlabPlugin::initForward(), and ExtPlugin::initForward().
bool Forward::setParam | ( | ParamSpaceScript * | param | ) |
References DinverCore::ParamSpaceScript::apply(), DinverCore::AbstractForward::parameterSpace(), and TRACE.
{ TRACE; delete _param; _param=param; return _param->apply(¶meterSpace()); }
bool Forward::setParamSpace | ( | ParamGroundModel * | gm | ) |
References DinverDCCore::ParamProfile::addLayer(), DinverDCCore::ParamGroundModel::addProfile(), DinverCore::RealSpace::clearParameters(), DinverDCCore::ParamGroundModel::find(), DinverDCCore::ParamGroundModel::initFinalProfiles(), DinverCore::AbstractForward::parameterSpace(), DinverDCCore::ParamGroundModel::removeProfile(), DinverDCCore::TargetList::setParamProfiles(), DinverDCCore::ParamGroundModel::toParameters(), QGpCoreTools::tr(), TRACE, and DinverDCCore::ParamProfile::type().
Referenced by clone(), DCPlugin::initForward(), and xml_polish().
{ TRACE; _paramModel=gm; /* Compatibility with older parameterizations without Poisson profile and with older parameterizations with Poisson profile but without type specification */ ParamProfile * nu=_paramModel->find("Nu"); if(nu && nu->type()!=ParamProfile::Condition) { _paramModel->removeProfile(nu); nu=0; } if(!nu) { ParamProfile * p=new ParamProfile( "Nu", tr("Poisson's Ratio"), tr(""), 0.2, 0.5, ParamProfile::Condition, SimpleCondition::GreaterThan); p->addLayer(new ParamLayer(p, 0, 0.2, 0.5, 0.0, 0.0) ); _paramModel->addProfile(p); } _paramModel->initFinalProfiles(); parameterSpace().clearParameters(); if( !_paramModel->toParameters(parameterSpace()) ) return false; //_targets->setAlpha(addParam( "alpha", "", 0.0, 1.0) ); _targets->setParamProfiles(_paramModel, parameterSpace()); return true; }
bool Forward::setTarget | ( | ExtTarget * | target | ) |
References ExtTarget::isOk(), DinverCore::AbstractForward::parameterSpace(), target(), and TRACE.
Referenced by MatlabPlugin::initForward(), and ExtPlugin::initForward().
{ TRACE; if(target!=_target) { delete _target; _target=target; } return _target->isOk(parameterSpace().allParameterCount()); }
bool Forward::setTarget | ( | MatlabTarget * | target, |
bool | skipTest | ||
) |
void Forward::setTargets | ( | TargetList * | tl | ) | [inline] |
Referenced by clone(), and DCPlugin::initForward().
{_targets=tl;}
void Forward::sleep | ( | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
References TRACE.
{ TRACE; #ifdef GP_MATLAB_LIBS if(_matlab) { engClose(_matlab); _matlab=0; } #endif AbstractForward::sleep(); }
ExtTarget* Forward::target | ( | ) | const [inline] |
Referenced by MatlabPlugin::setCurrentForward(), ExtPlugin::setCurrentForward(), and setTarget().
{return _target;}
MatlabTarget* Forward::target | ( | ) | const [inline] |
{return _target;}
TargetList* Forward::targetList | ( | ) | const [inline] |
Referenced by DCPlugin::setCurrentForward().
{return _targets;}
void Forward::valueChanged | ( | const Parameter * | p = 0 | ) | [inline, virtual] |
Reimplemented from DinverCore::AbstractForward.
References DinverDCCore::TargetList::isGroundModelParameter(), and DinverDCCore::ParamGroundModel::updateFinalProfiles().
{ if(!p || _targets->isGroundModelParameter(p)) { _paramModel->updateFinalProfiles(static_cast<const GroundParameter *>(p)); } }
bool Forward::wake | ( | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
References QGpCoreTools::endl(), MATLAB_OUTPUT_BUFFER_SIZE, QGpCoreTools::tr(), and TRACE.
{ TRACE; #ifdef GP_MATLAB_LIBS App::stream() << tr("Initialize Matlab engine...") << endl; App::setStreamPrefix("[Init] "); _matlab=engOpen(_target->startup().toAscii().data()); if(_matlab) { char buffer[MATLAB_OUTPUT_BUFFER_SIZE]; buffer[MATLAB_OUTPUT_BUFFER_SIZE-1]='\0'; engOutputBuffer(_matlab, buffer, MATLAB_OUTPUT_BUFFER_SIZE); if(!_target->scriptPath().isEmpty()) { QString cmd="addpath('" + _target->scriptPath() + "');"; App::stream() << cmd << endl; if(engEvalString( _matlab, cmd.toAscii().data())!=0) { if(buffer[0]!='\0') App::stream() << buffer+4 << endl; App::setStreamPrefix(""); engClose(_matlab); _matlab=0; return false; } if(buffer[0]!='\0') App::stream() << buffer+4 << endl; } App::stream() << _target->initScript() << endl; if(engEvalString( _matlab, _target->initScript().toAscii().data())!=0) { if(buffer[0]!='\0') App::stream() << buffer+4 << endl; App::setStreamPrefix(""); engClose(_matlab); _matlab=0; return false; } if(buffer[0]!='\0') App::stream() << buffer+4 << endl; App::setStreamPrefix(""); return AbstractForward::wake(); } else #endif { return false; } }
void Forward::writeReport | ( | ReportWriter * | report | ) | [inline, virtual] |
Reimplemented from DinverCore::AbstractForward.
References DinverDCCore::TargetList::writeReport().
{ _targets->writeReport(report); }
virtual XMLMember Forward::xml_member | ( | XML_MEMBER_ARGS | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
XMLMember Forward::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
Reimplemented from DinverCore::AbstractForward.
References TRACE.
{ TRACE; Q_UNUSED(attributes) Q_UNUSED(context); if(tag=="TargetList" ) { if(_targets) delete _targets; _targets=new TargetList; return XMLMember(_targets); } else if(tag=="ParamGroundModel" ) { if(_paramModel) delete _paramModel; _paramModel=new ParamGroundModel; return XMLMember(_paramModel); } else return XMLMember(XMLMember::Unknown); }
virtual XMLMember Forward::xml_member | ( | XML_MEMBER_ARGS | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
virtual void Forward::xml_polish | ( | XML_POLISH_ARGS | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
void Forward::xml_polish | ( | XML_POLISH_ARGS | ) | [protected, virtual] |
Reimplemented from DinverCore::AbstractForward.
References DinverCore::RealSpace::adjustRanges(), DinverCore::RealSpace::humanInfo(), DinverCore::AbstractForward::parameterSpace(), setParamSpace(), DinverCore::RealSpace::setVariableParameters(), and TRACE.
{ TRACE; Q_UNUSED(context); setParamSpace(_paramModel); parameterSpace().setVariableParameters(); parameterSpace().adjustRanges(); parameterSpace().humanInfo(); }
virtual void Forward::xml_polish | ( | XML_POLISH_ARGS | ) | [virtual] |
Reimplemented from DinverCore::AbstractForward.
virtual void Forward::xml_writeChildren | ( | XML_WRITECHILDREN_ARGS | ) | const [virtual] |
Reimplemented from DinverCore::AbstractForward.
void Forward::xml_writeChildren | ( | XML_WRITECHILDREN_ARGS | ) | const [protected, virtual] |
Reimplemented from DinverCore::AbstractForward.
References TRACE, and QGpCoreTools::XMLClass::xml_save().
virtual void Forward::xml_writeChildren | ( | XML_WRITECHILDREN_ARGS | ) | const [virtual] |
Reimplemented from DinverCore::AbstractForward.