Cloudy
Spectral Synthesis Code for Astrophysics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
phymir_state< X, Y, NP, NSTR > Class Template Reference

#include <optimize.h>

Public Member Functions

 phymir_state ()
 
void clear ()
 
void init_minmax (const X[], const X[], int)
 
void init_state_file_name (const char *)
 
void init_strings (const string &, const string &, const char *)
 
void initial_run (Y(*)(const X[], int), int, const X[], const X[], X, int, phymir_mode, int)
 
void continue_from_state (Y(*)(const X[], int), int, const char *, X, int, phymir_mode, int)
 
void optimize ()
 
void optimize_with_restart ()
 
bool lgMaxIterExceeded () const
 
bool lgInitialized () const
 
bool lgConverged () const
 
bool lgConvergedRestart () const
 
xval (int i) const
 
xmin (int i) const
 
xmax (int i) const
 
yval () const
 
int32 noptim () const
 

Private Member Functions

void p_clear1 ()
 
void p_wr_state (const char *) const
 
void p_rd_state (const char *)
 
p_execute_job (const X[], int, int)
 
void p_execute_job_parallel (const X[], int, int) const
 
void p_barrier (int, int)
 
void p_process_output (int, int)
 
void p_evaluate_hyperblock ()
 
void p_setup_next_hyperblock ()
 
void p_reset_hyperblock ()
 
void p_phygrm (X[][NP], int)
 
bool p_lgLimitExceeded (const X[]) const
 
p_delta (int i, int j) const
 
void p_reset_transformation_matrix ()
 

Private Attributes

p_xmax
 
p_ymax
 
p_xp [2 *NP+1][NP]
 
p_yp [2 *NP+1]
 
p_absmin [NP]
 
p_absmax [NP]
 
p_varmin [NP]
 
p_varmax [NP]
 
p_a2 [NP][NP]
 
p_c1 [NP]
 
p_c2 [NP]
 
p_xc [NP]
 
p_xcold [NP]
 
p_vers
 
p_toler
 
p_dmax
 
p_dold
 
p_ymin
 
int32 p_dim
 
int32 p_sdim
 
int32 p_nvar
 
int32 p_noptim
 
int32 p_maxiter
 
int32 p_jmin
 
int32 p_maxcpu
 
int32 p_curcpu
 
phymir_mode p_mode
 
char p_chState [NSTR]
 
char p_chStr1 [NSTR]
 
char p_chStr2 [NSTR]
 
char p_chStr3 [NSTR]
 
Y(* p_func )(const X[], int)
 

Constructor & Destructor Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
phymir_state< X, Y, NP, NSTR >::phymir_state ( )
inline

References phymir_state< X, Y, NP, NSTR >::p_clear1().

Here is the call graph for this function:

Member Function Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
void phymir_state< X, Y, NP, NSTR >::clear ( )
inline

References phymir_state< X, Y, NP, NSTR >::p_clear1().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::continue_from_state ( Y(*)(const X[], int)  func,
int  nvar,
const char *  fnam,
toler,
int  maxiter,
phymir_mode  mode,
int  maxcpu 
)

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fp_equal(), and VRSNEW.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_minmax ( const X  pmin[],
const X  pmax[],
int  nvar 
)

References ASSERT, and DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_state_file_name ( const char *  fnam)

References DEBUG_ENTRY.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::init_strings ( const string &  date,
const string &  version,
const char *  host_name 
)

References DEBUG_ENTRY, and NULL.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::initial_run ( Y(*)(const X[], int)  func,
int  nvar,
const X  start[],
const X  del[],
toler,
int  maxiter,
phymir_mode  mode,
int  maxcpu 
)

References ASSERT, DEBUG_ENTRY, max(), and min().

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgConverged ( ) const
inline
template<class X , class Y , int NP, int NSTR>
bool phymir_state< X, Y, NP, NSTR >::lgConvergedRestart ( ) const

References DEBUG_ENTRY, dist(), and pow2().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgInitialized ( ) const
inline
template<class X, class Y = X, int NP = 32, int NSTR = 32>
bool phymir_state< X, Y, NP, NSTR >::lgMaxIterExceeded ( ) const
inline
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::noptim ( ) const
inline
template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::optimize ( )

References ASSERT, and DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::optimize_with_restart ( )

References ASSERT, DEBUG_ENTRY, and optimize.

Referenced by optimize_phymir().

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_barrier ( int  jlo,
int  jhi 
)
private

References DEBUG_ENTRY, MPI_Barrier, MPI_Bcast, NULL, PHYMIR_FORK, PHYMIR_MPI, PHYMIR_SEQ, TotalInsanity(), and wait.

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_clear1 ( )
private

References DEBUG_ENTRY, max(), NULL, PHYMIR_ILL, and VRSNEW.

Referenced by phymir_state< X, Y, NP, NSTR >::clear(), and phymir_state< X, Y, NP, NSTR >::phymir_state().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_delta ( int  i,
int  j 
) const
inlineprivate
template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_evaluate_hyperblock ( )
private

References DEBUG_ENTRY, max(), and min().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
Y phymir_state< X, Y, NP, NSTR >::p_execute_job ( const X  x[],
int  jj,
int  runNr 
)
private
template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_execute_job_parallel ( const X  x[],
int  jj,
int  runNr 
) const
private

References DEBUG_ENTRY, ioQQQ, NULL, open_data(), and wr_block().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
bool phymir_state< X, Y, NP, NSTR >::p_lgLimitExceeded ( const X  x[]) const
private

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_phygrm ( a[][NP],
int  n 
)
private

References DEBUG_ENTRY, and pow2().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_process_output ( int  jlo,
int  jhi 
)
private

References append_file(), cpu, DEBUG_ENTRY, t_cpu::i(), ioQQQ, t_cpu_i::lgMaster(), and rd_block().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_rd_state ( const char *  fnam)
private

References AS_LOCAL_ONLY, cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, open_data(), and RD_ITEM().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_reset_hyperblock ( )
private

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_reset_transformation_matrix ( )
private

References DEBUG_ENTRY.

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_setup_next_hyperblock ( )
private

References DEBUG_ENTRY, F1, F2, max(), min(), MIN2, and pow2().

Here is the call graph for this function:

template<class X , class Y , int NP, int NSTR>
void phymir_state< X, Y, NP, NSTR >::p_wr_state ( const char *  fnam) const
private

References AS_TRY, cpu, DEBUG_ENTRY, t_cpu::i(), t_cpu_i::lgMaster(), NULL, open_data(), and WR_ITEM().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xmax ( int  i) const
inline

References min(), phymir_state< X, Y, NP, NSTR >::p_absmax, and phymir_state< X, Y, NP, NSTR >::p_varmax.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xmin ( int  i) const
inline

References max(), phymir_state< X, Y, NP, NSTR >::p_absmin, and phymir_state< X, Y, NP, NSTR >::p_varmin.

Referenced by optimize_phymir().

Here is the call graph for this function:

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::xval ( int  i) const
inline
template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::yval ( ) const
inline

Member Data Documentation

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_a2[NP][NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmax[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmin[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c1[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c2[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chState[NSTR]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr1[NSTR]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr2[NSTR]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr3[NSTR]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_curcpu
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_dim
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dmax
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dold
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y(* phymir_state< X, Y, NP, NSTR >::p_func)(const X[], int)
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_jmin
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxcpu
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxiter
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
phymir_mode phymir_state< X, Y, NP, NSTR >::p_mode
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_noptim
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_nvar
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_sdim
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_toler
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmax[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmin[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_vers
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xc[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xcold[NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xmax
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xp[2 *NP+1][NP]
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymax
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymin
private
template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_yp[2 *NP+1]
private

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