cloudy trunk
Loading...
Searching...
No Matches
phymir_state< X, Y, NP, NSTR > Class Template Reference

#include <optimize.h>

Collaboration diagram for phymir_state< X, Y, NP, NSTR >:

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 char *, const char *, 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]
uint32 p_size
Y(* p_func )(const X[], int)

Detailed Description

template<class X, class Y = X, int NP = 32, int NSTR = 32>
class phymir_state< X, Y, NP, NSTR >

Definition at line 71 of file optimize.h.

Constructor & Destructor Documentation

◆ phymir_state()

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

Definition at line 128 of file optimize.h.

References p_clear1().

Here is the call graph for this function:

Member Function Documentation

◆ clear()

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

Definition at line 129 of file optimize.h.

References p_clear1().

Here is the call graph for this function:

◆ continue_from_state()

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

Definition at line 578 of file optimize_phymir.cpp.

References cdEXIT, DEBUG_ENTRY, EXIT_FAILURE, fp_equal(), p_dim, p_func, p_maxcpu, p_maxiter, p_mode, p_nvar, p_rd_state(), p_sdim, p_toler, p_vers, and VRSNEW.

Referenced by optimize_phymir().

Here is the call graph for this function:

◆ init_minmax()

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 )

Definition at line 485 of file optimize_phymir.cpp.

References ASSERT, DEBUG_ENTRY, lgInitialized(), p_absmax, and p_absmin.

Here is the call graph for this function:

◆ init_state_file_name()

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

Definition at line 517 of file optimize_phymir.cpp.

References DEBUG_ENTRY, and p_chState.

Referenced by optimize_phymir().

◆ init_strings()

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

Definition at line 501 of file optimize_phymir.cpp.

References DEBUG_ENTRY, p_chStr1, p_chStr2, and p_chStr3.

Referenced by optimize_phymir().

◆ initial_run()

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

◆ lgConverged()

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

Definition at line 139 of file optimize.h.

References p_dmax, and p_toler.

Referenced by lgConvergedRestart(), and optimize().

◆ lgConvergedRestart()

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

Definition at line 656 of file optimize_phymir.cpp.

References DEBUG_ENTRY, dist(), lgConverged(), p_nvar, p_toler, p_xc, p_xcold, and pow2().

Referenced by optimize_with_restart(), and p_reset_hyperblock().

Here is the call graph for this function:

◆ lgInitialized()

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

Definition at line 138 of file optimize.h.

References p_nvar.

Referenced by init_minmax(), optimize(), and optimize_with_restart().

◆ lgMaxIterExceeded()

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

Definition at line 137 of file optimize.h.

References p_maxiter, and p_noptim.

Referenced by optimize(), optimize_phymir(), optimize_with_restart(), and p_evaluate_hyperblock().

◆ noptim()

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

Definition at line 145 of file optimize.h.

References p_noptim.

Referenced by optimize_phymir().

◆ optimize()

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

Definition at line 623 of file optimize_phymir.cpp.

References ASSERT, DEBUG_ENTRY, lgConverged(), lgInitialized(), lgMaxIterExceeded(), p_chState, p_evaluate_hyperblock(), p_setup_next_hyperblock(), and p_wr_state().

Here is the call graph for this function:

◆ optimize_with_restart()

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

Definition at line 640 of file optimize_phymir.cpp.

References ASSERT, DEBUG_ENTRY, lgConvergedRestart(), lgInitialized(), lgMaxIterExceeded(), optimize, and p_reset_hyperblock().

Referenced by optimize_phymir().

Here is the call graph for this function:

◆ p_barrier()

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

Definition at line 212 of file optimize_phymir.cpp.

References MPI::COMM_WORLD, DEBUG_ENTRY, p_curcpu, p_mode, p_process_output(), p_yp, PHYMIR_FORK, PHYMIR_MPI, PHYMIR_SEQ, TotalInsanity(), and wait.

Referenced by initial_run(), and p_evaluate_hyperblock().

Here is the call graph for this function:

◆ p_clear1()

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

◆ p_delta()

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

Definition at line 123 of file optimize.h.

Referenced by p_reset_transformation_matrix(), and p_setup_next_hyperblock().

◆ p_evaluate_hyperblock()

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

Definition at line 265 of file optimize_phymir.cpp.

References DEBUG_ENTRY, lgMaxIterExceeded(), max(), min(), p_a2, p_barrier(), p_c2, p_dmax, p_execute_job(), p_noptim, p_nvar, p_varmax, p_varmin, p_xc, p_xp, and p_yp.

Referenced by optimize().

Here is the call graph for this function:

◆ p_execute_job()

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

◆ p_execute_job_parallel()

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

Definition at line 178 of file optimize_phymir.cpp.

References AS_LOCAL_ONLY, DEBUG_ENTRY, ioQQQ, open_data(), p_func, p_lgLimitExceeded(), p_ymax, wr_block(), and yval().

Referenced by p_execute_job().

Here is the call graph for this function:

◆ p_lgLimitExceeded()

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

Definition at line 459 of file optimize_phymir.cpp.

References DEBUG_ENTRY, p_absmax, p_absmin, and p_nvar.

Referenced by p_execute_job(), and p_execute_job_parallel().

◆ p_phygrm()

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

Definition at line 432 of file optimize_phymir.cpp.

References DEBUG_ENTRY, and pow2().

Referenced by p_setup_next_hyperblock().

Here is the call graph for this function:

◆ p_process_output()

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

Definition at line 244 of file optimize_phymir.cpp.

References append_file(), cpu, DEBUG_ENTRY, ioQQQ, p_yp, and rd_block().

Referenced by p_barrier().

Here is the call graph for this function:

◆ p_rd_state()

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

Definition at line 109 of file optimize_phymir.cpp.

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

Referenced by continue_from_state().

Here is the call graph for this function:

◆ p_reset_hyperblock()

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

Definition at line 414 of file optimize_phymir.cpp.

References DEBUG_ENTRY, lgConvergedRestart(), p_c1, p_c2, p_dmax, p_dold, p_nvar, p_reset_transformation_matrix(), p_xc, and p_xcold.

Referenced by optimize_with_restart().

Here is the call graph for this function:

◆ p_reset_transformation_matrix()

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

Definition at line 474 of file optimize_phymir.cpp.

References DEBUG_ENTRY, p_a2, p_delta(), and p_nvar.

Referenced by initial_run(), and p_reset_hyperblock().

Here is the call graph for this function:

◆ p_setup_next_hyperblock()

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

Definition at line 296 of file optimize_phymir.cpp.

References DEBUG_ENTRY, F1, F2, max(), min(), MIN2, p_a2, p_c1, p_c2, p_delta(), p_dmax, p_dold, p_jmin, p_nvar, p_phygrm(), p_xc, p_xp, p_ymin, p_yp, and pow2().

Referenced by optimize().

Here is the call graph for this function:

◆ p_wr_state()

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

Definition at line 88 of file optimize_phymir.cpp.

References AS_LOCAL_ONLY_TRY, cpu, DEBUG_ENTRY, open_data(), and p_size.

Referenced by initial_run(), and optimize().

Here is the call graph for this function:

◆ xmax()

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

Definition at line 143 of file optimize.h.

References min(), p_absmax, and p_varmax.

Referenced by optimize_phymir().

Here is the call graph for this function:

◆ xmin()

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

Definition at line 142 of file optimize.h.

References max(), p_absmin, and p_varmin.

Referenced by optimize_phymir().

Here is the call graph for this function:

◆ xval()

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

Definition at line 141 of file optimize.h.

References p_xc.

Referenced by optimize_phymir().

◆ yval()

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

Definition at line 144 of file optimize.h.

References p_ymin.

Referenced by optimize_phymir(), and p_execute_job_parallel().

Field Documentation

◆ p_a2

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_a2[NP][NP]
private

◆ p_absmax

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmax[NP]
private

Definition at line 78 of file optimize.h.

Referenced by init_minmax(), p_clear1(), p_lgLimitExceeded(), and xmax().

◆ p_absmin

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_absmin[NP]
private

Definition at line 77 of file optimize.h.

Referenced by init_minmax(), p_clear1(), p_lgLimitExceeded(), and xmin().

◆ p_c1

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c1[NP]
private

Definition at line 82 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_reset_hyperblock(), and p_setup_next_hyperblock().

◆ p_c2

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_c2[NP]
private

◆ p_chState

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chState[NSTR]
private

Definition at line 100 of file optimize.h.

Referenced by init_state_file_name(), initial_run(), and optimize().

◆ p_chStr1

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr1[NSTR]
private

Definition at line 101 of file optimize.h.

Referenced by init_strings().

◆ p_chStr2

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr2[NSTR]
private

Definition at line 102 of file optimize.h.

Referenced by init_strings().

◆ p_chStr3

template<class X, class Y = X, int NP = 32, int NSTR = 32>
char phymir_state< X, Y, NP, NSTR >::p_chStr3[NSTR]
private

Definition at line 103 of file optimize.h.

Referenced by init_strings().

◆ p_curcpu

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_curcpu
private

Definition at line 98 of file optimize.h.

Referenced by p_barrier(), p_clear1(), and p_execute_job().

◆ p_dim

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_dim
private

Definition at line 91 of file optimize.h.

Referenced by continue_from_state(), and p_clear1().

◆ p_dmax

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dmax
private

◆ p_dold

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_dold
private

Definition at line 89 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_reset_hyperblock(), and p_setup_next_hyperblock().

◆ p_func

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

◆ p_jmin

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_jmin
private

Definition at line 96 of file optimize.h.

Referenced by initial_run(), p_clear1(), and p_setup_next_hyperblock().

◆ p_maxcpu

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxcpu
private

Definition at line 97 of file optimize.h.

Referenced by continue_from_state(), initial_run(), p_clear1(), and p_execute_job().

◆ p_maxiter

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_maxiter
private

Definition at line 95 of file optimize.h.

Referenced by continue_from_state(), initial_run(), lgMaxIterExceeded(), and p_clear1().

◆ p_mode

template<class X, class Y = X, int NP = 32, int NSTR = 32>
phymir_mode phymir_state< X, Y, NP, NSTR >::p_mode
private

Definition at line 99 of file optimize.h.

Referenced by continue_from_state(), initial_run(), p_barrier(), p_clear1(), and p_execute_job().

◆ p_noptim

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_noptim
private

Definition at line 94 of file optimize.h.

Referenced by initial_run(), lgMaxIterExceeded(), noptim(), p_clear1(), and p_evaluate_hyperblock().

◆ p_nvar

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_nvar
private

◆ p_sdim

template<class X, class Y = X, int NP = 32, int NSTR = 32>
int32 phymir_state< X, Y, NP, NSTR >::p_sdim
private

Definition at line 92 of file optimize.h.

Referenced by continue_from_state(), and p_clear1().

◆ p_size

template<class X, class Y = X, int NP = 32, int NSTR = 32>
uint32 phymir_state< X, Y, NP, NSTR >::p_size
private

Definition at line 106 of file optimize.h.

Referenced by p_clear1(), p_rd_state(), and p_wr_state().

◆ p_toler

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_toler
private

◆ p_varmax

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmax[NP]
private

Definition at line 80 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_evaluate_hyperblock(), and xmax().

◆ p_varmin

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_varmin[NP]
private

Definition at line 79 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_evaluate_hyperblock(), and xmin().

◆ p_vers

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_vers
private

Definition at line 86 of file optimize.h.

Referenced by continue_from_state(), and p_clear1().

◆ p_xc

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xc[NP]
private

◆ p_xcold

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xcold[NP]
private

Definition at line 85 of file optimize.h.

Referenced by initial_run(), lgConvergedRestart(), p_clear1(), and p_reset_hyperblock().

◆ p_xmax

template<class X, class Y = X, int NP = 32, int NSTR = 32>
X phymir_state< X, Y, NP, NSTR >::p_xmax
private

Definition at line 73 of file optimize.h.

Referenced by p_clear1().

◆ p_xp

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

Definition at line 75 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_evaluate_hyperblock(), and p_setup_next_hyperblock().

◆ p_ymax

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymax
private

Definition at line 74 of file optimize.h.

Referenced by p_clear1(), p_execute_job(), and p_execute_job_parallel().

◆ p_ymin

template<class X, class Y = X, int NP = 32, int NSTR = 32>
Y phymir_state< X, Y, NP, NSTR >::p_ymin
private

Definition at line 90 of file optimize.h.

Referenced by initial_run(), p_clear1(), p_setup_next_hyperblock(), and yval().

◆ p_yp

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: