UltraScan III
List of all members | Classes | Signals | Public Member Functions | Private Member Functions | Private Attributes
US_LammAstfvm Class Reference

Module to calculate simulation data by AST Finite Volume Method. More...

#include "us_lamm_astfvm.h"

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

Classes

class  Mesh
 Finite volume mesh for ASTFVM solution. More...
 
class  SaltData
 Salt data for co-sedimenting. More...
 

Signals

void calc_start (int nsteps)
 Signal calculation start and give maximum steps. More...
 
void calc_progress (int istep)
 Signal calculation progress, giving running step count. More...
 
void calc_done (void)
 Signal that calculations are complete. More...
 
void comp_progress (int icomp)
 Signal component progress, giving running component number. More...
 
void new_scan (QVector< double > *, double *)
 Signal that calculation step is complete. The connected slot receives the radius vector and concentration array from loops in calculate functions. More...
 
void new_time (double)
 Signal component progress, giving running component number The connected slot receives the scan time value from calc. functions.a. More...
 

Public Member Functions

 US_LammAstfvm (US_Model &, US_SimulationParameters &, QObject *=0)
 Create Lamm equations AST Finite Volume Method solver. More...
 
 ~US_LammAstfvm ()
 Destroy FVM solver. More...
 
int calculate (US_DataIO::RawData &)
 Main method to calculate FVM solution. More...
 
void set_buffer (US_Buffer)
 Set buffer parameters: density, compressibility. More...
 
int solve_component (int)
 Calculate solution for a model component. More...
 
void SetMeshSpeedFactor (double)
 Set the mesh speed factor: 1.0 (moving) or 0.0 (non-moving) More...
 
void SetMeshRefineOpt (int)
 Set the mesh refinement option: 1 to refine, 0 to not refine. More...
 
void setStopFlag (bool)
 Set stop flag. More...
 
void setMovieFlag (bool)
 Set a flag for whether to emit signals for movie mode. More...
 

Private Member Functions

int nonIdealCaseNo (void)
 Get the non-ideal case number from model parameters. More...
 
void SetNonIdealCase_1 (double, double)
 Set up non-ideal case type 1 (concentration-dependent) More...
 
void SetNonIdealCase_2 (void)
 Set up non-ideal case type 2 (co-sedimenting) More...
 
void SetNonIdealCase_3 (int &, double &)
 Set up non-ideal case type 3 (compressibility) More...
 
void LammStepSedDiff_P (double, double, int, double *, double *, double *)
 
void LammStepSedDiff_C (double, double, int, double *, double *, int, double *, double *, double *)
 
void ProjectQ (int, double *, double *, int, double *, double *)
 
double IntQs (double *, double *, int, double, int, double)
 
void quadInterpolate (double *, double *, int, QVector< double > &, QVector< double > &)
 
void LocateStar (int, double *, int, double *, int *, double *)
 
void AdjustSD (double, int, double *, double *, double *, double *)
 
void fun_phi (double, double *)
 
void fun_dphi (double, double *)
 
void fun_Iphi (double, double *)
 
double IntQ (double *, double *, double, double)
 
void LsSolver53 (int, double **, double *, double *)
 
void load_mfem_data (US_DataIO::RawData &, US_AstfemMath::MfemData &, bool=true)
 
void store_mfem_data (US_DataIO::RawData &, US_AstfemMath::MfemData &)
 

Private Attributes

US_Modelmodel
 
US_SimulationParameterssimparams
 
US_DataIO::RawDataauc_data
 
US_AstfemMath::MfemData af_data
 
Meshmsh
 
int NonIdealCaseNo
 
double sigma
 
double delta
 
double density
 
double compressib
 
double vbar_salt
 
SaltDatasaltdata
 
double MeshSpeedFactor
 
int MeshRefineOpt
 
int comp_x
 
int dbg_level
 
bool stopFlag
 
bool movieFlag
 
double param_m
 
double param_b
 
double param_s
 
double param_D
 
double param_w2
 
double err_tol
 
double d_coeff [6]
 
double v_coeff [6]
 

Detailed Description

Module to calculate simulation data by AST Finite Volume Method.

Definition at line 19 of file us_lamm_astfvm.h.

Constructor & Destructor Documentation

US_LammAstfvm::US_LammAstfvm ( US_Model rmodel,
US_SimulationParameters rsimparms,
QObject *  parent = 0 
)

Create Lamm equations AST Finite Volume Method solver.

Parameters
rmodelReference to model on which solution is based
rsimparmsReference to simulation parameters
parentParent object (may be 0)

Definition at line 688 of file us_lamm_astfvm.cpp.

US_LammAstfvm::~US_LammAstfvm ( )

Destroy FVM solver.

Definition at line 731 of file us_lamm_astfvm.cpp.

Member Function Documentation

void US_LammAstfvm::AdjustSD ( double  t,
int  Nv,
double *  x,
double *  u,
double *  s_adj,
double *  D_adj 
)
private

Definition at line 1566 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::calc_done ( void  )
signal

Signal that calculations are complete.

void US_LammAstfvm::calc_progress ( int  istep)
signal

Signal calculation progress, giving running step count.

Parameters
istepCurrent progress step count
void US_LammAstfvm::calc_start ( int  nsteps)
signal

Signal calculation start and give maximum steps.

Parameters
nstepsNumber of expected total calculation progress steps
int US_LammAstfvm::calculate ( US_DataIO::RawData sim_data)

Main method to calculate FVM solution.

Parameters
sim_dataReference to simulated AUC data to produce
Returns
Non-zero if multiple non-ideal conditions

Definition at line 739 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::comp_progress ( int  icomp)
signal

Signal component progress, giving running component number.

Parameters
icompCurrent component begun (1,...)
void US_LammAstfvm::fun_dphi ( double  x,
double *  y 
)
private

Definition at line 1741 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::fun_Iphi ( double  x,
double *  y 
)
private

Definition at line 1755 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::fun_phi ( double  x,
double *  y 
)
private

Definition at line 1733 of file us_lamm_astfvm.cpp.

double US_LammAstfvm::IntQ ( double *  x,
double *  u,
double  xia,
double  xib 
)
private

Definition at line 1772 of file us_lamm_astfvm.cpp.

double US_LammAstfvm::IntQs ( double *  x,
double *  u,
int  ka,
double  xia,
int  kb,
double  xib 
)
private

Definition at line 1795 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::LammStepSedDiff_C ( double  t,
double  dt,
int  M0,
double *  x0,
double *  u0,
int  M1,
double *  x1,
double *  u1p,
double *  u1 
)
private

Definition at line 1266 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::LammStepSedDiff_P ( double  t,
double  dt,
int  M0,
double *  x0,
double *  u0,
double *  u1 
)
private

Definition at line 1244 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::load_mfem_data ( US_DataIO::RawData edata,
US_AstfemMath::MfemData fdata,
bool  zeroout = true 
)
private

Definition at line 2005 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::LocateStar ( int  N0,
double *  x0,
int  Ns,
double *  xs,
int *  ke,
double *  xi 
)
private

Definition at line 1544 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::LsSolver53 ( int  m,
double **  A,
double *  b,
double *  x 
)
private

Definition at line 1874 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::new_scan ( QVector< double > *  ,
double *   
)
signal

Signal that calculation step is complete. The connected slot receives the radius vector and concentration array from loops in calculate functions.

void US_LammAstfvm::new_time ( double  )
signal

Signal component progress, giving running component number The connected slot receives the scan time value from calc. functions.a.

int US_LammAstfvm::nonIdealCaseNo ( void  )
private

Get the non-ideal case number from model parameters.

Returns
Non-zero if multiple non-ideal conditions

Definition at line 1916 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::ProjectQ ( int  M0,
double *  x0,
double *  u0,
int  M1,
double *  x1,
double *  u1 
)
private

Definition at line 1829 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::quadInterpolate ( double *  x0,
double *  u0,
int  N0,
QVector< double > &  xout,
QVector< double > &  cout 
)
private

Definition at line 1951 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::set_buffer ( US_Buffer  buffer)

Set buffer parameters: density, compressibility.

Parameters
bufferBuffer object to examine

Definition at line 1184 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::SetMeshRefineOpt ( int  Opt)

Set the mesh refinement option: 1 to refine, 0 to not refine.

Parameters
OptMesh refinement option flag: 1/0 for yes/no.

Definition at line 1226 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::SetMeshSpeedFactor ( double  speed)

Set the mesh speed factor: 1.0 (moving) or 0.0 (non-moving)

Parameters
speedMesh speed factor of 1.0 or 0.0

Definition at line 1221 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::setMovieFlag ( bool  flag)

Set a flag for whether to emit signals for movie mode.

Parameters
flagFlag for whether or not to operate in show-movie mode.

Definition at line 2094 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::SetNonIdealCase_1 ( double  sigma_k,
double  delta_k 
)
private

Set up non-ideal case type 1 (concentration-dependent)

Parameters
sigma_kSigma constant to modify sedimentation coefficient
delta_kDelta constant to modify diffusion coefficient

Definition at line 1196 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::SetNonIdealCase_2 ( void  )
private

Set up non-ideal case type 2 (co-sedimenting)

Definition at line 1202 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::SetNonIdealCase_3 ( int &  mropt,
double &  err_tol 
)
private

Set up non-ideal case type 3 (compressibility)

Parameters
mroptReference to mesh refine option flag to set
err_tolReference to error tolerance factor to set

Definition at line 1215 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::setStopFlag ( bool  flag)

Set stop flag.

Parameters
flagFlag for whether to stop

Definition at line 2087 of file us_lamm_astfvm.cpp.

int US_LammAstfvm::solve_component ( int  compx)

Calculate solution for a model component.

Parameters
compxIndex to model component to use in solution pass
Returns
Non-zero if multiple non-ideal conditions

Definition at line 780 of file us_lamm_astfvm.cpp.

void US_LammAstfvm::store_mfem_data ( US_DataIO::RawData edata,
US_AstfemMath::MfemData fdata 
)
private

Definition at line 2062 of file us_lamm_astfvm.cpp.

Member Data Documentation

US_AstfemMath::MfemData US_LammAstfvm::af_data
private

Definition at line 192 of file us_lamm_astfvm.h.

US_DataIO::RawData* US_LammAstfvm::auc_data
private

Definition at line 190 of file us_lamm_astfvm.h.

int US_LammAstfvm::comp_x
private

Definition at line 219 of file us_lamm_astfvm.h.

double US_LammAstfvm::compressib
private

Definition at line 208 of file us_lamm_astfvm.h.

double US_LammAstfvm::d_coeff[6]
private

Definition at line 233 of file us_lamm_astfvm.h.

int US_LammAstfvm::dbg_level
private

Definition at line 220 of file us_lamm_astfvm.h.

double US_LammAstfvm::delta
private

Definition at line 203 of file us_lamm_astfvm.h.

double US_LammAstfvm::density
private

Definition at line 207 of file us_lamm_astfvm.h.

double US_LammAstfvm::err_tol
private

Definition at line 231 of file us_lamm_astfvm.h.

int US_LammAstfvm::MeshRefineOpt
private

Definition at line 216 of file us_lamm_astfvm.h.

double US_LammAstfvm::MeshSpeedFactor
private

Definition at line 213 of file us_lamm_astfvm.h.

US_Model& US_LammAstfvm::model
private

Definition at line 188 of file us_lamm_astfvm.h.

bool US_LammAstfvm::movieFlag
private

Definition at line 223 of file us_lamm_astfvm.h.

Mesh* US_LammAstfvm::msh
private

Definition at line 194 of file us_lamm_astfvm.h.

int US_LammAstfvm::NonIdealCaseNo
private

Definition at line 196 of file us_lamm_astfvm.h.

double US_LammAstfvm::param_b
private

Definition at line 226 of file us_lamm_astfvm.h.

double US_LammAstfvm::param_D
private

Definition at line 228 of file us_lamm_astfvm.h.

double US_LammAstfvm::param_m
private

Definition at line 225 of file us_lamm_astfvm.h.

double US_LammAstfvm::param_s
private

Definition at line 227 of file us_lamm_astfvm.h.

double US_LammAstfvm::param_w2
private

Definition at line 229 of file us_lamm_astfvm.h.

SaltData* US_LammAstfvm::saltdata
private

Definition at line 211 of file us_lamm_astfvm.h.

double US_LammAstfvm::sigma
private

Definition at line 202 of file us_lamm_astfvm.h.

US_SimulationParameters& US_LammAstfvm::simparams
private

Definition at line 189 of file us_lamm_astfvm.h.

bool US_LammAstfvm::stopFlag
private

Definition at line 222 of file us_lamm_astfvm.h.

double US_LammAstfvm::v_coeff[6]
private

Definition at line 234 of file us_lamm_astfvm.h.

double US_LammAstfvm::vbar_salt
private

Definition at line 209 of file us_lamm_astfvm.h.


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