46 const std::string ifluid_i = fluid_agent->
ifluid_i;
47 const std::string fluidBufB = fluid_agent->
fluidBufB;
48 const std::string fluidBufNB = fluid_agent->
fluidBufNB;
49 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
91 std::string solidBuf = solid_agent->
solidBuf;
112 add_agent( solid_agent);
125 SolidFluidSPC::SolidFluidSPC(
126 const char *fluidmodule,
const char *solidmodule,
130 Coupling(
"FluidSolidSPC", fluidmodule, solidmodule, p, mp)
132 maxPredCorr = param->maxNumPredCorrCycles;
135 SolidAgent *solid_agent =
new SolidAgent(
this, normalize_modname(solidmodule), solidmodule, com, 1);
136 add_agent( solid_agent);
137 const std::string solidBufBase = solid_agent->
solidBufBase;
138 const std::string solidBuf = solid_agent->
solidBuf;
140 FluidAgent *fluid_agent =
new FluidAgent(
this, normalize_modname(fluidmodule), fluidmodule, com, 1);
141 add_agent( fluid_agent);
142 const std::string propBufAll = fluid_agent->
propBufAll;
143 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
151 fluidBufNG+
".ts", solidBuf+
".ts", solidBuf+
".pf"));
164 solidBuf+
".x", solidBuf+
".uhat",
170 solidBuf+
".u", fluidBufNG+
".total_disp",
174 fluid_agent, solid_agent,
175 solidBuf+
".vs", fluidBufNG+
".vs"));
185 fluidBufNG+
".vs"), 2);
203 Coupling(
"FluidBurnAlone", fluidmodule, burnmodule, p, mp)
210 const std::string propBufAll = fluid_agent->
propBufAll;
211 const std::string fluidBufB = fluid_agent->
fluidBufB;
212 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
216 const std::string iburn_ng = burn_agent->
iburn_ng;
218 const double rhoc = mp->
rhoc;
226 std::string propBuf = fluid_agent->
propBufAll;
228 if (!PROP_fom) propBuf = fluid_agent->
propBuf;
251 iburn_ng+
".normals"));
262 iburn_ng+
".qc",
"_alp", 1));
264 iburn_ng+
".qr",
"_alp", 1));
266 iburn_ng+
".Tf",
"_alp", 1));
268 iburn_ng+
".Tv",
"_alp", 1));
270 iburn_ng+
".dn",
"_alp", 1));
272 iburn_ng+
".rhos",
"_alp", 1));
284 iburn_ng+
".rb", propBufAll+
".vm", zoom));
287 iburn_ng+
".rhos", iburn_ng+
".rb",
288 fluidBufNG+
".mdot"));
293 iburn_ng+
".Tflm"), 1);
297 fluidBufB+
".mdot"), 2);
302 fluidBufB+
".mdot_alp", zoom), 2);
305 fluidBufB+
".mdot_alp",
306 fluidBufB+
".rhofvf_alp",
324 SolidBurn::SolidBurn(
const char *solidmodule,
const char *burnmodule,
327 Coupling(
"SolidBurn", solidmodule, burnmodule, p, mp)
335 const std::string solidBuf = solid_agent->
solidBuf;
336 const std::string solid_propBufAll = solid_agent->
propBufAll;
337 const std::string solid_propBuf = solid_agent->
propBuf;
341 const std::string iburn_ng = burn_agent->
iburn_ng;
350 solidBuf+
".x", solidBuf+
".uhat",
353 std::string propBuf = solid_agent->
propBufAll;
354 if (!PROP_fom) propBuf = solid_agent->
propBuf;
358 propBuf+
".pmesh", &solid_agent->
withALE));
386 solid_agent, burn_agent,
387 fluidBufNG+
".pf", fluidBufB+
".mdot",
388 iburn_ng+
".rb", solidBuf+
".ts",
396 fluid_agent, solid_agent,
397 solidBuf+
".x", solidBuf+
".uhat",
398 solidBuf+
".nc", zoom));
408 iburn_ng+
".nc", iburn_ng+
".centers"));
414 solidBuf+
".rhos", fluidBufNG+
".rhos"));
419 iburn_ng+
".qc",
"_alp", 1));
421 iburn_ng+
".qr",
"_alp", 1));
423 iburn_ng+
".Tf",
"_alp", 1));
425 iburn_ng+
".rhos",
"_alp", 1));
441 fluid_agent, solid_agent,
442 iburn_ng+
".rb", solidBuf+
".rb"));
445 solid_propBufAll+
".vbar", zoom));
454 solid_propBufAll+
".vbar",
"_alp", 1), 1);
466 SolidFluidBurnSPC::SolidFluidBurnSPC(
467 const char *fluidmodule,
const char *solidmodule,
468 const char *burnmodule, MPI_Comm com,
470 FullyCoupling(
"FluidSolidBurnSPC", fluidmodule, solidmodule, burnmodule, p, mp)
477 const std::string ifluid_all = fluid_agent->
ifluid_all;
478 const std::string fluid_propBufAll = fluid_agent->
propBufAll;
479 const std::string fluidBufB = fluid_agent->
fluidBufB;
480 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
484 const std::string solidBuf = solid_agent->
solidBuf;
485 const std::string solid_propBufAll = solid_agent->
propBufAll;
486 const std::string solid_propBuf = solid_agent->
propBuf;
488 burn_agent =
new BurnAgent(
this,
"Rocburn", burnmodule, com, fluidBufB);
490 const std::string iburn_ng = burn_agent->
iburn_ng;
500 solidBuf+
".x", solidBuf+
".uhat",
503 std::string propBuf = solid_agent->
propBufAll;
504 if (!PROP_fom) propBuf = solid_agent->
propBuf;
508 propBuf+
".pmesh", &solid_agent->
withALE));
519 solidBuf+
".u", fluidBufNG+
".total_disp",
520 fluidBufNG+
".nc", fluidBufNG+
".nc_t0"));
533 fluid_agent, solid_agent,
534 fluidBufNG+
".pf", fluidBufB+
".mdot",
549 fluid_agent, solid_agent,
550 solidBuf+
".x", solidBuf+
".uhat",
551 solidBuf+
".nc", zoom));
562 iburn_ng+
".nc", iburn_ng+
".centers"));
568 solidBuf+
".rhos", fluidBufNG+
".rhos"));
573 iburn_ng+
".qc",
"_alp", 1));
575 iburn_ng+
".qr",
"_alp", 1));
577 iburn_ng+
".Tf",
"_alp", 1));
579 iburn_ng+
".rhos",
"_alp", 1));
588 solid_agent, burn_agent,
590 solidBuf+
".ts", solidBuf+
".pf"));
592 fluid_agent, solid_agent,
593 iburn_ng+
".rb", solidBuf+
".rb"));
596 solid_propBufAll+
".vbar", zoom));
605 solid_propBufAll+
".vbar",
"_alp", 1), 1);
614 fluid_agent, solid_agent,
615 solidBuf+
".x", solidBuf+
".uhat",
616 solidBuf+
".nc", zoom));
622 solidBuf+
".u", fluidBufNG+
".total_disp",
625 fluid_agent, solid_agent,
626 solidBuf+
".vs", fluidBufNG+
".vs"));
628 solid_agent, burn_agent,
629 fluidBufNG+
".mdot"));
635 iburn_ng+
".Tflm"), 1);
639 fluidBufB+
".mdot"), 2);
643 fluidBufB+
".mdot_alp", zoom), 2);
645 fluidBufNG+
".vs"), 2);
647 fluidBufNG+
".vs_alp",
648 fluidBufNG+
".rhof_alp",
649 fluidBufNG+
".rhofvf_alp"), 2);
652 fluidBufB+
".mdot_alp",
653 fluidBufB+
".rhofvf_alp",
658 fluid_propBufAll+
".vm",
667 fluidBufNG+
".pf", fluidBufB+
".mdot",
FluidAlone(const char *, MPI_Comm com, Control_parameters *p, const RocmanControl_parameters *mp)
virtual void add_action(Action *)
Agent * add_agent(Agent *)
Add new agent.
void add_bcaction(Action *act, int l=1)
void add_bcinitaction(Action *act)
static void declare_fluid_actions(FluidAgent *fluid_agent)
std::string get_surface_window() const
std::string normalize_modname(const char *mod)
Control_parameters * param
void add_gmaction(Action *act)
Coupling * get_coupling()
UserScheduler init_scheduler
const RocmanControl_parameters * get_rocmancontrol_param()
FluidBurnAlone(const char *, const char *, MPI_Comm com, Control_parameters *p, const RocmanControl_parameters *mp)
void add_icaction(Action *act)
Action * get_main_action()
const Control_parameters * get_control_param()
static void declare_solid_actions(SolidAgent *solid_agent)
int initial_start() const
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_GROUP_EMPTY INTEGER MPI_BAND INTEGER MPI_MINLOC INTEGER MPI_MAXLOC INTEGER MPI_OP_NULL INTEGER MPI_ERRORS_RETURN!INTEGER MPI_ORDER_FORTRAN INTEGER MPI_DISTRIBUTE_CYCLIC INTEGER MPI_DISTRIBUTE_DFLT_DARG INTEGER MPI_MAX_INFO_VAL INTEGER MPI_INFO_NULL!Optional Fortran Types Configure attempts to determine these!INTEGER MPI_INTEGER8 INTEGER MPI_INTEGER16 INTEGER MPI_REAL16 INTEGER MPI_COMPLEX32!This is now handled with either the pointer extension or this same appended at the end!COMMON MPIPRIV MPI_STATUSES_IGNORE!C!C Without this some Fortran implementations may make the common!C dynamic!C!C For a Fortran90 module