UltraScan III
List of all members | Public Types | Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Slots | Private Member Functions | Private Attributes
US_pcsaProcess Class Reference

PCSA Processor object. More...

#include "us_pcsa_process.h"

Inheritance diagram for US_pcsaProcess:
Inheritance graph
[legend]
Collaboration diagram for US_pcsaProcess:
Collaboration graph
[legend]

Public Types

enum  TaskState { READY, WORKING, ABORTED }
 The state of a task. More...
 

Signals

void progress_update (double)
 
void process_complete (int)
 
void stage_complete (int, int)
 
void message_update (QString, bool)
 

Public Member Functions

 US_pcsaProcess (QList< US_SolveSim::DataSet * > &, QObject *=0)
 Create a PCSA processor object. More...
 
void start_fit (double, double, double, double, int, int, int, int, int, int, int, double, double=0.0)
 Start the fit calculations. More...
 
void final_fit (double)
 Complete the final fit for alpha scan or alpha change. More...
 
bool get_results (US_DataIO::RawData *, US_DataIO::RawData *, US_Model *, US_Noise *, US_Noise *, int &, QStringList &, QVector< US_ModelRecord > &)
 Get results upon completion of all refinements. More...
 
void get_mrec (US_ModelRecord &)
 Get best mrec result needed for an alpha scan. More...
 
void put_mrec (US_ModelRecord &)
 Replace best mrec in internal mrecs list. More...
 
void put_mrecs (QVector< US_ModelRecord > &)
 Replace internal mrecs list. More...
 
void stop_fit (void)
 Stop a fit that is in progress. More...
 
void clear_memory (void)
 Clear memory in preparation for fit start. More...
 

Static Public Member Functions

static double fit_function_SL (double, double *)
 
static double fit_function_IS (double, double *)
 
static double fit_function_DS (double, double *)
 
static double fit_function_HL (double, double *)
 

Static Public Attributes

static const int solute_doubles = sizeof( US_ZSolute ) / sizeof( double )
 

Protected Member Functions

virtual void timerEvent (QTimerEvent *e)
 

Private Slots

void queue_task (WorkPacketPc &, double, double, int, int, QVector< US_ZSolute >)
 
int slmodels (int, double, double, double, double, int, int)
 
int sigmodels (int, double, double, double, double, int, int)
 
int pl2models (double, double, double, double, int, int)
 
void process_job (WorkerThreadPc *)
 
void process_fxfinal (US_ModelRecord &)
 
void submit_job (WorkPacketPc &, int)
 
void free_worker (int)
 
void model_statistics (QVector< US_ModelRecord > &, QStringList &)
 
QString pmessage_head (void)
 
WorkPacketPc next_job (void)
 
void LevMarq_fit (void)
 
void compute_final (void)
 
void elite_limits (QVector< US_ModelRecord > &, double &, double &, double &, double &, double &, double &)
 
void restart_fit (void)
 
static double evaluate_model (QList< US_SolveSim::DataSet * > &, US_SolveSim::Simulation &)
 

Private Member Functions

long int max_rss (void)
 

Private Attributes

QList< US_SolveSim::DataSet * > & dsets
 
long int maxrss
 
QList< WorkerThreadPc * > wthreads
 
QList< WorkPacketPcjob_queue
 
QVector< US_ModelRecordmrecs
 
QVector< int > wkstates
 
QList< QVector< US_ZSolute > > orig_sols
 
QVector< double > rmsds
 
US_DataIO::EditedDataedata
 
US_DataIO::RawData sdata
 
US_DataIO::RawData rdata
 
US_Model model
 
US_Noise ti_noise
 
US_Noise ri_noise
 
US_SimulationParameterssimparms
 
QString errMsg
 
int dbg_level
 
int nthreads
 
int cresolu
 
int curvtype
 
int nypts
 
int nctotal
 
int kcsteps
 
int noisflag
 
int nscans
 
int npoints
 
int nmtasks
 
int kctask
 
int kstask
 
int minvarx
 
int time_fg
 
int time_lm
 
int lmtm_id
 
int fi_iter
 
int fi_itermax
 
int lmmxcall
 
int st_mask
 
int attr_x
 
int attr_y
 
int attr_z
 
bool abort
 
bool lm_done
 
bool alpha_scn
 
double xlolim
 
double xuplim
 
double ylolim
 
double yuplim
 
double cparam
 
double varimin
 
double alpha
 
double alpha_fx
 
double alpha_lm
 
double parlims [12]
 
double pfi_rmsd
 
double cfi_rmsd
 
double rd_frac
 
double rd_thresh
 
QTime timer
 

Detailed Description

PCSA Processor object.

This class sets up a set of PCSA simulations for a grid across an s and k range. It divides the refinements in the grid across a specified number of worker threads.

Definition at line 41 of file us_pcsa_process.h.

Member Enumeration Documentation

The state of a task.

Enumerator
READY 
WORKING 
ABORTED 

Definition at line 47 of file us_pcsa_process.h.

Constructor & Destructor Documentation

US_pcsaProcess::US_pcsaProcess ( QList< US_SolveSim::DataSet * > &  dsets,
QObject *  parent = 0 
)

Create a PCSA processor object.

Parameters
dsetsList of experiment data sets
parentPointer to parent object

Definition at line 19 of file us_pcsa_process.cpp.

Member Function Documentation

void US_pcsaProcess::clear_memory ( void  )

Clear memory in preparation for fit start.

Definition at line 2422 of file us_pcsa_process.cpp.

void US_pcsaProcess::compute_final ( void  )
privateslot

Definition at line 2235 of file us_pcsa_process.cpp.

void US_pcsaProcess::elite_limits ( QVector< US_ModelRecord > &  mrecs,
double &  minyv,
double &  maxyv,
double &  minp1,
double &  maxp1,
double &  minp2,
double &  maxp2 
)
privateslot

Definition at line 2050 of file us_pcsa_process.cpp.

double US_pcsaProcess::evaluate_model ( QList< US_SolveSim::DataSet * > &  dsets,
US_SolveSim::Simulation sim_vals 
)
staticprivateslot

Definition at line 2140 of file us_pcsa_process.cpp.

void US_pcsaProcess::final_fit ( double  alf)

Complete the final fit for alpha scan or alpha change.

Parameters
alfregularization alpha factor

Definition at line 297 of file us_pcsa_process.cpp.

double US_pcsaProcess::fit_function_DS ( double  t,
double *  par 
)
static

Definition at line 1393 of file us_pcsa_process.cpp.

double US_pcsaProcess::fit_function_HL ( double  t,
double *  par 
)
static

Definition at line 1523 of file us_pcsa_process.cpp.

double US_pcsaProcess::fit_function_IS ( double  t,
double *  par 
)
static

Definition at line 1262 of file us_pcsa_process.cpp.

double US_pcsaProcess::fit_function_SL ( double  t,
double *  par 
)
static

Definition at line 1136 of file us_pcsa_process.cpp.

void US_pcsaProcess::free_worker ( int  tx)
privateslot

Definition at line 819 of file us_pcsa_process.cpp.

void US_pcsaProcess::get_mrec ( US_ModelRecord p_mrec)

Get best mrec result needed for an alpha scan.

Parameters
p_mrecModel record

Definition at line 559 of file us_pcsa_process.cpp.

bool US_pcsaProcess::get_results ( US_DataIO::RawData da_sim,
US_DataIO::RawData da_res,
US_Model da_mdl,
US_Noise da_tin,
US_Noise da_rin,
int &  bm_ndx,
QStringList &  modstats,
QVector< US_ModelRecord > &  p_mrecs 
)

Get results upon completion of all refinements.

Parameters
da_simCalculated simulation data
da_resResiduals data (exper - simul)
da_mdlComposite model
da_tinTime-invariant noise (or null)
da_rinRadially-invariant noise (or null)
bm_ndxBest model index
modstatsMrecs report stringlist
p_mrecsModel record vector
Returns
Success flag: true if successful

Definition at line 513 of file us_pcsa_process.cpp.

void US_pcsaProcess::LevMarq_fit ( void  )
privateslot

Definition at line 1638 of file us_pcsa_process.cpp.

long int US_pcsaProcess::max_rss ( void  )
private

Definition at line 54 of file us_pcsa_process.cpp.

void US_pcsaProcess::message_update ( QString  ,
bool   
)
signal
void US_pcsaProcess::model_statistics ( QVector< US_ModelRecord > &  mrecs,
QStringList &  modstats 
)
privateslot

Definition at line 960 of file us_pcsa_process.cpp.

WorkPacketPc US_pcsaProcess::next_job ( void  )
privateslot

Definition at line 866 of file us_pcsa_process.cpp.

int US_pcsaProcess::pl2models ( double  xlo,
double  xup,
double  ylo,
double  yup,
int  nyp,
int  nlpts 
)
privateslot

Definition at line 937 of file us_pcsa_process.cpp.

QString US_pcsaProcess::pmessage_head ( void  )
privateslot

Definition at line 831 of file us_pcsa_process.cpp.

void US_pcsaProcess::process_complete ( int  )
signal
void US_pcsaProcess::process_fxfinal ( US_ModelRecord mrec)
privateslot

Definition at line 309 of file us_pcsa_process.cpp.

void US_pcsaProcess::process_job ( WorkerThreadPc wthrd)
privateslot

Definition at line 658 of file us_pcsa_process.cpp.

void US_pcsaProcess::progress_update ( double  )
signal
void US_pcsaProcess::put_mrec ( US_ModelRecord a_mrec)

Replace best mrec in internal mrecs list.

Parameters
a_mrecModel record

Definition at line 565 of file us_pcsa_process.cpp.

void US_pcsaProcess::put_mrecs ( QVector< US_ModelRecord > &  a_mrecs)

Replace internal mrecs list.

Parameters
a_mrecsModel records list

Definition at line 576 of file us_pcsa_process.cpp.

void US_pcsaProcess::queue_task ( WorkPacketPc wtask,
double  stry,
double  endy,
int  taskx,
int  noisf,
QVector< US_ZSolute isolutes 
)
privateslot

Definition at line 799 of file us_pcsa_process.cpp.

void US_pcsaProcess::restart_fit ( void  )
privateslot

Definition at line 2316 of file us_pcsa_process.cpp.

int US_pcsaProcess::sigmodels ( int  ctp,
double  xlo,
double  xup,
double  ylo,
double  yup,
int  nyp,
int  nlpts 
)
privateslot

Definition at line 914 of file us_pcsa_process.cpp.

int US_pcsaProcess::slmodels ( int  ctp,
double  xlo,
double  xup,
double  ylo,
double  yup,
int  nyp,
int  res 
)
privateslot

Definition at line 886 of file us_pcsa_process.cpp.

void US_pcsaProcess::stage_complete ( int  ,
int   
)
signal
void US_pcsaProcess::start_fit ( double  xll,
double  xul,
double  yll,
double  yul,
int  nyp,
int  res,
int  typ,
int  nth,
int  noi,
int  lmmxc,
int  gfits,
double  gfthr,
double  alf = 0.0 
)

Start the fit calculations.

Parameters
xllx lower limit
xulx upper limit
ylly lower limit
yuly upper limit
nypnumber of y points (variations)
resresolution == line points count (model solutes)
typcurve type (0->straight lines)
nthnumber of threads
noinoise flag: 0-3 for none|ti|ri|both
lmmxcL-M maximum calls
gfitsgrid fit maximum iterations
gfthrgrid fit threshold difference fraction
alfregularization alpha factor

Definition at line 60 of file us_pcsa_process.cpp.

void US_pcsaProcess::stop_fit ( void  )

Stop a fit that is in progress.

Definition at line 263 of file us_pcsa_process.cpp.

void US_pcsaProcess::submit_job ( WorkPacketPc wtask,
int  thrx 
)
privateslot

Definition at line 636 of file us_pcsa_process.cpp.

void US_pcsaProcess::timerEvent ( QTimerEvent *  e)
protectedvirtual

Definition at line 2200 of file us_pcsa_process.cpp.

Member Data Documentation

bool US_pcsaProcess::abort
private

Definition at line 178 of file us_pcsa_process.h.

double US_pcsaProcess::alpha
private

Definition at line 188 of file us_pcsa_process.h.

double US_pcsaProcess::alpha_fx
private

Definition at line 189 of file us_pcsa_process.h.

double US_pcsaProcess::alpha_lm
private

Definition at line 190 of file us_pcsa_process.h.

bool US_pcsaProcess::alpha_scn
private

Definition at line 180 of file us_pcsa_process.h.

int US_pcsaProcess::attr_x
private

Definition at line 174 of file us_pcsa_process.h.

int US_pcsaProcess::attr_y
private

Definition at line 175 of file us_pcsa_process.h.

int US_pcsaProcess::attr_z
private

Definition at line 176 of file us_pcsa_process.h.

double US_pcsaProcess::cfi_rmsd
private

Definition at line 193 of file us_pcsa_process.h.

double US_pcsaProcess::cparam
private

Definition at line 186 of file us_pcsa_process.h.

int US_pcsaProcess::cresolu
private

Definition at line 155 of file us_pcsa_process.h.

int US_pcsaProcess::curvtype
private

Definition at line 156 of file us_pcsa_process.h.

int US_pcsaProcess::dbg_level
private

Definition at line 153 of file us_pcsa_process.h.

QList< US_SolveSim::DataSet* >& US_pcsaProcess::dsets
private

Definition at line 124 of file us_pcsa_process.h.

US_DataIO::EditedData* US_pcsaProcess::edata
private

Definition at line 140 of file us_pcsa_process.h.

QString US_pcsaProcess::errMsg
private

Definition at line 151 of file us_pcsa_process.h.

int US_pcsaProcess::fi_iter
private

Definition at line 170 of file us_pcsa_process.h.

int US_pcsaProcess::fi_itermax
private

Definition at line 171 of file us_pcsa_process.h.

QList< WorkPacketPc > US_pcsaProcess::job_queue
private

Definition at line 131 of file us_pcsa_process.h.

int US_pcsaProcess::kcsteps
private

Definition at line 159 of file us_pcsa_process.h.

int US_pcsaProcess::kctask
private

Definition at line 164 of file us_pcsa_process.h.

int US_pcsaProcess::kstask
private

Definition at line 165 of file us_pcsa_process.h.

bool US_pcsaProcess::lm_done
private

Definition at line 179 of file us_pcsa_process.h.

int US_pcsaProcess::lmmxcall
private

Definition at line 172 of file us_pcsa_process.h.

int US_pcsaProcess::lmtm_id
private

Definition at line 169 of file us_pcsa_process.h.

long int US_pcsaProcess::maxrss
private

Definition at line 126 of file us_pcsa_process.h.

int US_pcsaProcess::minvarx
private

Definition at line 166 of file us_pcsa_process.h.

US_Model US_pcsaProcess::model
private

Definition at line 144 of file us_pcsa_process.h.

QVector< US_ModelRecord > US_pcsaProcess::mrecs
private

Definition at line 133 of file us_pcsa_process.h.

int US_pcsaProcess::nctotal
private

Definition at line 158 of file us_pcsa_process.h.

int US_pcsaProcess::nmtasks
private

Definition at line 163 of file us_pcsa_process.h.

int US_pcsaProcess::noisflag
private

Definition at line 160 of file us_pcsa_process.h.

int US_pcsaProcess::npoints
private

Definition at line 162 of file us_pcsa_process.h.

int US_pcsaProcess::nscans
private

Definition at line 161 of file us_pcsa_process.h.

int US_pcsaProcess::nthreads
private

Definition at line 154 of file us_pcsa_process.h.

int US_pcsaProcess::nypts
private

Definition at line 157 of file us_pcsa_process.h.

QList< QVector< US_ZSolute > > US_pcsaProcess::orig_sols
private

Definition at line 137 of file us_pcsa_process.h.

double US_pcsaProcess::parlims[12]
private

Definition at line 191 of file us_pcsa_process.h.

double US_pcsaProcess::pfi_rmsd
private

Definition at line 192 of file us_pcsa_process.h.

double US_pcsaProcess::rd_frac
private

Definition at line 194 of file us_pcsa_process.h.

double US_pcsaProcess::rd_thresh
private

Definition at line 195 of file us_pcsa_process.h.

US_DataIO::RawData US_pcsaProcess::rdata
private

Definition at line 142 of file us_pcsa_process.h.

US_Noise US_pcsaProcess::ri_noise
private

Definition at line 147 of file us_pcsa_process.h.

QVector< double > US_pcsaProcess::rmsds
private

Definition at line 139 of file us_pcsa_process.h.

US_DataIO::RawData US_pcsaProcess::sdata
private

Definition at line 141 of file us_pcsa_process.h.

US_SimulationParameters* US_pcsaProcess::simparms
private

Definition at line 149 of file us_pcsa_process.h.

const int US_pcsaProcess::solute_doubles = sizeof( US_ZSolute ) / sizeof( double )
static

Definition at line 107 of file us_pcsa_process.h.

int US_pcsaProcess::st_mask
private

Definition at line 173 of file us_pcsa_process.h.

US_Noise US_pcsaProcess::ti_noise
private

Definition at line 146 of file us_pcsa_process.h.

int US_pcsaProcess::time_fg
private

Definition at line 167 of file us_pcsa_process.h.

int US_pcsaProcess::time_lm
private

Definition at line 168 of file us_pcsa_process.h.

QTime US_pcsaProcess::timer
private

Definition at line 197 of file us_pcsa_process.h.

double US_pcsaProcess::varimin
private

Definition at line 187 of file us_pcsa_process.h.

QVector< int > US_pcsaProcess::wkstates
private

Definition at line 135 of file us_pcsa_process.h.

QList< WorkerThreadPc* > US_pcsaProcess::wthreads
private

Definition at line 130 of file us_pcsa_process.h.

double US_pcsaProcess::xlolim
private

Definition at line 182 of file us_pcsa_process.h.

double US_pcsaProcess::xuplim
private

Definition at line 183 of file us_pcsa_process.h.

double US_pcsaProcess::ylolim
private

Definition at line 184 of file us_pcsa_process.h.

double US_pcsaProcess::yuplim
private

Definition at line 185 of file us_pcsa_process.h.


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