|
| FullyCoupling (const char *coupl_name, const char *fluidname, const char *solidname, Control_parameters *p, const RocmanControl_parameters *mp) |
|
| FullyCoupling (const char *coupl_name, const char *fluidname, const char *solidname, const char *burnname, Control_parameters *p, const RocmanControl_parameters *mp) |
|
virtual void | update_integrals (double currentTime) |
|
virtual void | update_distances (double currentTime) |
|
virtual void | reload_rocface (const RocmanControl_parameters *param) |
|
| Coupling (const char *coupl_name, const char *name, Control_parameters *p, const RocmanControl_parameters *mp) |
| Constructor. Derived class will add actions for the coupling scheme. More...
|
|
| Coupling (const char *coupl_name, const char *fluidname, const char *solidname, Control_parameters *p, const RocmanControl_parameters *mp) |
|
| Coupling (const char *coupl_name, const char *fluidname, const char *solidname, const char *burnname, Control_parameters *p, const RocmanControl_parameters *mp) |
|
virtual | ~Coupling () |
| Destructor. More...
|
|
const char * | name () |
|
Agent * | add_agent (Agent *) |
| Add new agent. More...
|
|
void | schedule () |
| Schedule the top-level actions of the coupling scheme and the actions of the agents. More...
|
|
void | init (double t, double dt, int reinit=0) |
| Invoke initialization of the actions in the scheduler and the agents. More...
|
|
void | initialize (int reinit=0) |
|
void | finalize () |
| Invoke finalization of the actions in the scheduler and the agents. More...
|
|
double | run (double t, double dt, int iPredCorr, double zoom) |
| Invoke the scheduler. More...
|
|
void | run_initactions (double t, double dt) |
|
void | input (double t) |
| Invoke input functions of the agents. More...
|
|
int | get_ipc () const |
|
int | get_max_ipc () const |
|
int | initial_start () const |
|
int | in_restart () const |
|
int | initial_remeshed () const |
| true if in initialization step and remeshed is true More...
|
|
int | new_start (double t) const |
|
void | init_convergence (int iPredCorr) |
|
int | check_convergence () |
|
void | output_restart_files (double t) |
|
void | output_visualization_files (double t) |
|
const Control_parameters * | get_control_param () |
|
const RocmanControl_parameters * | get_rocmancontrol_param () |
|
void | read_restart_info () |
|
void | write_restart_info (double CurrentTime, int iStep) |
|
void | restart_at_time (double t, int step) |
|
void | print (const char *fname) |
|
void | Interrupt (int *, const char *) |
|
int | ProcessInterrupt () |
|
Definition at line 205 of file Coupling.h.
void update_distances |
( |
double |
currentTime | ) |
|
|
virtual |
Reimplemented from Coupling.
Definition at line 714 of file Coupling.C.
References COM_call_function(), COM_get_function_handle(), Coupling::comm_rank, Agent::communicator, Coupling::distFname, cimg_library::cimg::fclose(), fluid_agent, cimg_library::cimg::fopen(), Agent::get_communicator(), MAN_DEBUG, RocBlas::max_scalar_MPI, RocBlas::min_scalar_MPI, MPI_COMM_WORLD, FluidAgent::nc_hdl, FluidAgent::nc_tmp_hdl, RocBlas::nrm2, Coupling::overwrite_dist, solid_agent, FluidAgent::sq_dist_hdl, sqrt(), RocBlas::sub, RocBlas::sum_scalar_MPI, and SolidAgent::y_hdl.
716 double dist_max=-1, dist_min=-1, dist_nrm2=-1;
735 std::cerr <<
"Rocstar: Failed to open distance file, " <<
distFname
739 MAN_DEBUG(3, (
"Rocstar: FullyCoupling::update_distances with t: %f.\n", currentTime));
741 fprintf( fp,
"# time distance-min distance-max distance-norm2 \n");
744 fprintf( fp,
"%.18le %.18le %.18le %.18le\n",
745 currentTime,
sqrt(dist_min),
sqrt(dist_max),
sqrt(dist_nrm2));
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_COMM_WORLD
static int min_scalar_MPI
static int sum_scalar_MPI
int fclose(std::FILE *file)
Close a file, and check for possible errors.
void COM_call_function(const int wf, int argc,...)
static int max_scalar_MPI
MPI_Comm get_communicator() const
std::FILE * fopen(const char *const path, const char *const mode)
Open a file, and check for possible errors.
int COM_get_function_handle(const char *wfname)
void update_integrals |
( |
double |
currentTime | ) |
|
|
virtual |
Reimplemented from Coupling.
Definition at line 676 of file Coupling.C.
References Coupling::agents, Coupling::comm_rank, cimg_library::cimg::fclose(), fluid_agent, cimg_library::cimg::fopen(), Agent::get_integrals(), i, Coupling::integFname, MAN_DEBUG, MAN_INTEG_IBAREA, MAN_INTEG_INBAREA, MAN_INTEG_MASS, MAN_INTEG_VOL, MAN_INTEG_VOL_UND, MPI_COMM_WORLD, n, Coupling::overwrite_integ, and solid_agent.
679 for ( i=0, n=
agents.size(); i<
n; ++
i) {
680 count +=
agents[
i]->compute_integrals();
690 std::cerr <<
"Rocstar: Failed to open integral file, "
694 MAN_DEBUG(3, (
"Rocstar: FullyCoupling::update_integrals with t: %f.\n", currentTime));
696 fprintf( fp,
" time f-volume s-volume f-mass s-mass f-burn area s-burn area f-non-burn area s-non-burn area s-volume-undef\n");
701 fprintf( fp,
"%.18le %.18le %.18le %.18le %.18le %.18le %.18le %.18le %.18le %.18le\n",
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_COMM_WORLD
int fclose(std::FILE *file)
Close a file, and check for possible errors.
std::FILE * fopen(const char *const path, const char *const mode)
Open a file, and check for possible errors.