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

2DSA Processor object More...

#include "us_2dsa_process.h"

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

Public Types

enum  RefineType {
  UGRID, LUGRID, RLGRID, SOLCO,
  CLIPLO
}
 The type of refinement used. More...
 
enum  TaskState { READY, WORKING, ABORTED }
 The state of a task. More...
 

Signals

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

Public Member Functions

 US_2dsaProcess (QList< SS_DATASET * > &, QObject *=0)
 Create a 2DSA processor object. More...
 
void start_fit (double, double, int, double, double, int, int, int, int)
 Start the fit calculations. More...
 
void set_iters (int, int, int, double, double, double, int)
 Set up iteration-related parameters for a fit. More...
 
bool get_results (US_DataIO::RawData *, US_DataIO::RawData *, US_Model *, US_Noise *, US_Noise *)
 Get results upon completion of all refinements. More...
 
void stop_fit (void)
 Stop the current fit processing. More...
 
void clear_data (void)
 Clear all data memory for the processor. More...
 
int estimate_steps (int)
 Estimate progress steps after depth 0. More...
 
QString lastError (void)
 Get message for last error. More...
 

Static Public Attributes

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

Private Slots

void queue_task (WorkPacket2D &, double, double, int, int, int, QVector< US_Solute >)
 
void process_job (WorkerThread2D *)
 
void process_final (WorkerThread2D *)
 
void step_progress (int)
 
void final_computes (void)
 
void iterate (void)
 
void set_meniscus (void)
 
void set_monteCarlo (void)
 
void set_gaussians (void)
 
void requeue_tasks (void)
 
void submit_job (WorkPacket2D &, int)
 
void free_worker (int)
 
int running_at_depth (int)
 
int queued_at_depth (int)
 
int jobs_at_depth (int)
 
QString pmessage_head (void)
 
WorkPacket2D next_job (void)
 
bool memory_check (void)
 

Private Member Functions

long int max_rss (void)
 

Private Attributes

QList< SS_DATASET * > & dsets
 
long int maxrss
 
QList< WorkerThread2D * > wthreads
 
QList< WorkPacket2Djob_queue
 
QVector< int > wkstates
 
QVector< int > wkdepths
 
QVector< int > tkdepths
 
QVector< double > sigmas
 
QList< double > itvaris
 
QList< QVector< US_Solute > > c_solutes
 
QList< QVector< US_Solute > > orig_sols
 
QList< QVector< US_Solute > > ical_sols
 
US_DataIO::EditedDataedata
 
US_DataIO::EditedDatabdata
 
US_DataIO::EditedData wdata
 
US_DataIO::RawData sdata
 
US_DataIO::RawData sdata1
 
US_DataIO::RawData rdata
 
US_Model model
 
US_Noise ti_noise
 
US_Noise ri_noise
 
US_SimulationParameterssimparms
 
QObject * parentw
 
QString errMsg
 
int dbg_level
 
int nthreads
 
int nssteps
 
int nksteps
 
int ngrefine
 
int jgrefine
 
int nctotal
 
int kcsteps
 
int noisflag
 
int nscans
 
int npoints
 
int nsubgrid
 
int kctask
 
int kstask
 
int mmiters
 
int mmtype
 
int maxtsols
 
int mintsols
 
int maxdepth
 
int maxiters
 
int r_iter
 
int mm_iter
 
int ntisols
 
int ntcsols
 
bool abort
 
bool fnoionly
 
double slolim
 
double suplim
 
double klolim
 
double kuplim
 
double gdelta_s
 
double gdelta_k
 
double sdelta_s
 
double sdelta_k
 
double varitol
 
double menrange
 
double cnstff0
 
QTime timer
 

Detailed Description

2DSA Processor object

This class sets up a set of 2DSA 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 33 of file us_2dsa_process.h.

Member Enumeration Documentation

The type of refinement used.

Enumerator
UGRID 
LUGRID 
RLGRID 
SOLCO 
CLIPLO 

Definition at line 40 of file us_2dsa_process.h.

The state of a task.

Enumerator
READY 
WORKING 
ABORTED 

Definition at line 43 of file us_2dsa_process.h.

Constructor & Destructor Documentation

US_2dsaProcess::US_2dsaProcess ( QList< SS_DATASET * > &  dsets,
QObject *  parent = 0 
)

Create a 2DSA processor object.

Parameters
dsetsPointer to input experiment data
parentPointer to parent object

Definition at line 15 of file us_2dsa_process.cpp.

Member Function Documentation

void US_2dsaProcess::clear_data ( void  )

Clear all data memory for the processor.

Definition at line 360 of file us_2dsa_process.cpp.

int US_2dsaProcess::estimate_steps ( int  ncsol)

Estimate progress steps after depth 0.

Parameters
ncsolNumber of last calculated solutes
Returns
Number of estimated remaining steps

Definition at line 1217 of file us_2dsa_process.cpp.

void US_2dsaProcess::final_computes ( void  )
privateslot

Definition at line 384 of file us_2dsa_process.cpp.

void US_2dsaProcess::free_worker ( int  tx)
privateslot

Definition at line 1198 of file us_2dsa_process.cpp.

bool US_2dsaProcess::get_results ( US_DataIO::RawData da_sim,
US_DataIO::RawData da_res,
US_Model da_mdl,
US_Noise da_tin,
US_Noise da_rin 
)

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)
Returns
Success flag: true if successful

Definition at line 786 of file us_2dsa_process.cpp.

void US_2dsaProcess::iterate ( void  )
privateslot

Definition at line 1091 of file us_2dsa_process.cpp.

int US_2dsaProcess::jobs_at_depth ( int  depth)
privateslot

Definition at line 1297 of file us_2dsa_process.cpp.

QString US_2dsaProcess::lastError ( void  )
inline

Get message for last error.

Returns
Message about last error

Definition at line 96 of file us_2dsa_process.h.

long int US_2dsaProcess::max_rss ( void  )
private

Definition at line 49 of file us_2dsa_process.cpp.

bool US_2dsaProcess::memory_check ( void  )
privateslot

Definition at line 1488 of file us_2dsa_process.cpp.

void US_2dsaProcess::message_update ( QString  ,
bool   
)
signal
WorkPacket2D US_2dsaProcess::next_job ( void  )
privateslot

Definition at line 1454 of file us_2dsa_process.cpp.

QString US_2dsaProcess::pmessage_head ( void  )
privateslot

Definition at line 1447 of file us_2dsa_process.cpp.

void US_2dsaProcess::process_complete ( int  )
signal
void US_2dsaProcess::process_final ( WorkerThread2D wthrd)
privateslot

Definition at line 444 of file us_2dsa_process.cpp.

void US_2dsaProcess::process_job ( WorkerThread2D wthrd)
privateslot

Definition at line 838 of file us_2dsa_process.cpp.

void US_2dsaProcess::progress_update ( int  )
signal
void US_2dsaProcess::queue_task ( WorkPacket2D wtask,
double  llss,
double  llsk,
int  taskx,
int  depth,
int  noisf,
QVector< US_Solute isolutes 
)
privateslot

Definition at line 1052 of file us_2dsa_process.cpp.

int US_2dsaProcess::queued_at_depth ( int  depth)
privateslot

Definition at line 1267 of file us_2dsa_process.cpp.

void US_2dsaProcess::requeue_tasks ( void  )
privateslot

Definition at line 1355 of file us_2dsa_process.cpp.

int US_2dsaProcess::running_at_depth ( int  depth)
privateslot

Definition at line 1281 of file us_2dsa_process.cpp.

void US_2dsaProcess::set_gaussians ( void  )
privateslot

Definition at line 1396 of file us_2dsa_process.cpp.

void US_2dsaProcess::set_iters ( int  mxiter,
int  mciter,
int  mniter,
double  vtoler,
double  menrng,
double  cff0,
int  jgref 
)

Set up iteration-related parameters for a fit.

Parameters
mxiterMaximum refinement iterations
mciterNumber of monte carlo iterations
mniterNumber of meniscus iterations
vtolerVariance difference tolerance
menrngMeniscus range
cff0Constant f/f0 (or 0.0)
jgrefFlag of refine/solute type

Definition at line 295 of file us_2dsa_process.cpp.

void US_2dsaProcess::set_meniscus ( void  )
privateslot

Definition at line 1303 of file us_2dsa_process.cpp.

void US_2dsaProcess::set_monteCarlo ( void  )
privateslot

Definition at line 1319 of file us_2dsa_process.cpp.

void US_2dsaProcess::stage_complete ( int  ,
int   
)
signal
void US_2dsaProcess::start_fit ( double  sll,
double  sul,
int  nss,
double  kll,
double  kul,
int  nks,
int  ngr,
int  nthr,
int  noif 
)

Start the fit calculations.

Parameters
slls lower limit
suls upper limit
nssnumber of s steps
kllk lower limit
kulk upper limit
nksnumber of k steps
ngrnumber of grid refinements
nthrnumber of threads
noifnoise flag: 0-3 for none|ti|ri|both

Definition at line 55 of file us_2dsa_process.cpp.

void US_2dsaProcess::step_progress ( int  ksteps)
privateslot

Definition at line 374 of file us_2dsa_process.cpp.

void US_2dsaProcess::stop_fit ( void  )

Stop the current fit processing.

Definition at line 321 of file us_2dsa_process.cpp.

void US_2dsaProcess::submit_job ( WorkPacket2D wtask,
int  thrx 
)
privateslot

Definition at line 813 of file us_2dsa_process.cpp.

Member Data Documentation

bool US_2dsaProcess::abort
private

Definition at line 176 of file us_2dsa_process.h.

US_DataIO::EditedData* US_2dsaProcess::bdata
private

Definition at line 132 of file us_2dsa_process.h.

QList< QVector< US_Solute > > US_2dsaProcess::c_solutes
private

Definition at line 127 of file us_2dsa_process.h.

double US_2dsaProcess::cnstff0
private

Definition at line 189 of file us_2dsa_process.h.

int US_2dsaProcess::dbg_level
private

Definition at line 151 of file us_2dsa_process.h.

QList< SS_DATASET* >& US_2dsaProcess::dsets
private

Definition at line 110 of file us_2dsa_process.h.

US_DataIO::EditedData* US_2dsaProcess::edata
private

Definition at line 131 of file us_2dsa_process.h.

QString US_2dsaProcess::errMsg
private

Definition at line 149 of file us_2dsa_process.h.

bool US_2dsaProcess::fnoionly
private

Definition at line 177 of file us_2dsa_process.h.

double US_2dsaProcess::gdelta_k
private

Definition at line 184 of file us_2dsa_process.h.

double US_2dsaProcess::gdelta_s
private

Definition at line 183 of file us_2dsa_process.h.

QList< QVector< US_Solute > > US_2dsaProcess::ical_sols
private

Definition at line 129 of file us_2dsa_process.h.

QList< double > US_2dsaProcess::itvaris
private

Definition at line 125 of file us_2dsa_process.h.

int US_2dsaProcess::jgrefine
private

Definition at line 156 of file us_2dsa_process.h.

QList< WorkPacket2D > US_2dsaProcess::job_queue
private

Definition at line 117 of file us_2dsa_process.h.

int US_2dsaProcess::kcsteps
private

Definition at line 158 of file us_2dsa_process.h.

int US_2dsaProcess::kctask
private

Definition at line 163 of file us_2dsa_process.h.

double US_2dsaProcess::klolim
private

Definition at line 181 of file us_2dsa_process.h.

int US_2dsaProcess::kstask
private

Definition at line 164 of file us_2dsa_process.h.

double US_2dsaProcess::kuplim
private

Definition at line 182 of file us_2dsa_process.h.

int US_2dsaProcess::maxdepth
private

Definition at line 169 of file us_2dsa_process.h.

int US_2dsaProcess::maxiters
private

Definition at line 170 of file us_2dsa_process.h.

long int US_2dsaProcess::maxrss
private

Definition at line 112 of file us_2dsa_process.h.

int US_2dsaProcess::maxtsols
private

Definition at line 167 of file us_2dsa_process.h.

double US_2dsaProcess::menrange
private

Definition at line 188 of file us_2dsa_process.h.

int US_2dsaProcess::mintsols
private

Definition at line 168 of file us_2dsa_process.h.

int US_2dsaProcess::mm_iter
private

Definition at line 172 of file us_2dsa_process.h.

int US_2dsaProcess::mmiters
private

Definition at line 165 of file us_2dsa_process.h.

int US_2dsaProcess::mmtype
private

Definition at line 166 of file us_2dsa_process.h.

US_Model US_2dsaProcess::model
private

Definition at line 140 of file us_2dsa_process.h.

int US_2dsaProcess::nctotal
private

Definition at line 157 of file us_2dsa_process.h.

int US_2dsaProcess::ngrefine
private

Definition at line 155 of file us_2dsa_process.h.

int US_2dsaProcess::nksteps
private

Definition at line 154 of file us_2dsa_process.h.

int US_2dsaProcess::noisflag
private

Definition at line 159 of file us_2dsa_process.h.

int US_2dsaProcess::npoints
private

Definition at line 161 of file us_2dsa_process.h.

int US_2dsaProcess::nscans
private

Definition at line 160 of file us_2dsa_process.h.

int US_2dsaProcess::nssteps
private

Definition at line 153 of file us_2dsa_process.h.

int US_2dsaProcess::nsubgrid
private

Definition at line 162 of file us_2dsa_process.h.

int US_2dsaProcess::ntcsols
private

Definition at line 174 of file us_2dsa_process.h.

int US_2dsaProcess::nthreads
private

Definition at line 152 of file us_2dsa_process.h.

int US_2dsaProcess::ntisols
private

Definition at line 173 of file us_2dsa_process.h.

QList< QVector< US_Solute > > US_2dsaProcess::orig_sols
private

Definition at line 128 of file us_2dsa_process.h.

QObject* US_2dsaProcess::parentw
private

Definition at line 147 of file us_2dsa_process.h.

int US_2dsaProcess::r_iter
private

Definition at line 171 of file us_2dsa_process.h.

US_DataIO::RawData US_2dsaProcess::rdata
private

Definition at line 138 of file us_2dsa_process.h.

US_Noise US_2dsaProcess::ri_noise
private

Definition at line 143 of file us_2dsa_process.h.

US_DataIO::RawData US_2dsaProcess::sdata
private

Definition at line 135 of file us_2dsa_process.h.

US_DataIO::RawData US_2dsaProcess::sdata1
private

Definition at line 136 of file us_2dsa_process.h.

double US_2dsaProcess::sdelta_k
private

Definition at line 186 of file us_2dsa_process.h.

double US_2dsaProcess::sdelta_s
private

Definition at line 185 of file us_2dsa_process.h.

QVector< double > US_2dsaProcess::sigmas
private

Definition at line 123 of file us_2dsa_process.h.

US_SimulationParameters* US_2dsaProcess::simparms
private

Definition at line 145 of file us_2dsa_process.h.

double US_2dsaProcess::slolim
private

Definition at line 179 of file us_2dsa_process.h.

const int US_2dsaProcess::solute_doubles = sizeof( US_Solute ) / sizeof( double )
static

Definition at line 99 of file us_2dsa_process.h.

double US_2dsaProcess::suplim
private

Definition at line 180 of file us_2dsa_process.h.

US_Noise US_2dsaProcess::ti_noise
private

Definition at line 142 of file us_2dsa_process.h.

QTime US_2dsaProcess::timer
private

Definition at line 191 of file us_2dsa_process.h.

QVector< int > US_2dsaProcess::tkdepths
private

Definition at line 121 of file us_2dsa_process.h.

double US_2dsaProcess::varitol
private

Definition at line 187 of file us_2dsa_process.h.

US_DataIO::EditedData US_2dsaProcess::wdata
private

Definition at line 133 of file us_2dsa_process.h.

QVector< int > US_2dsaProcess::wkdepths
private

Definition at line 120 of file us_2dsa_process.h.

QVector< int > US_2dsaProcess::wkstates
private

Definition at line 119 of file us_2dsa_process.h.

QList< WorkerThread2D* > US_2dsaProcess::wthreads
private

Definition at line 116 of file us_2dsa_process.h.


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