40 FluidSolidISS::FluidSolidISS(
41 const char *fluidmodule,
const char *solidmodule,
45 Coupling(
"FluidSolidISS", fluidmodule, solidmodule, p, mp)
47 maxPredCorr = param->maxNumPredCorrCycles;
50 FluidAgent *fluid_agent =
new FluidAgent(
this, normalize_modname(fluidmodule), fluidmodule, com, 1);
51 add_agent( fluid_agent);
52 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
53 const std::string fluid_propBufAll = fluid_agent->
propBufAll;
55 SolidAgent *solid_agent =
new SolidAgent(
this, normalize_modname(solidmodule), solidmodule, com, 1);
56 add_agent( solid_agent);
57 const std::string solidBuf = solid_agent->
solidBuf;
64 solidBuf+
".x", solidBuf+
".uhat",
68 fluid_agent, solid_agent,
69 solidBuf+
".u", solidBuf+
".vs",
79 fluid_propBufAll+
".vm",
89 fluidBufNG+
".ts", solidBuf+
".ts", solidBuf+
".pf"));
103 SolidFluidBurnEnergySPC::SolidFluidBurnEnergySPC(
104 const char *fluidmodule,
const char *solidmodule,
105 const char *burnmodule, MPI_Comm com,
107 FullyCoupling(
"SolidFluidBurnEnergySPC", fluidmodule, solidmodule, burnmodule, p, mp)
109 maxPredCorr = param->maxNumPredCorrCycles;
113 fluid_agent =
new FluidAgent(
this, normalize_modname(fluidmodule), fluidmodule, com, 1);
114 add_agent( fluid_agent);
115 const std::string ifluid_all = fluid_agent->
ifluid_all;
116 const std::string fluid_propBufAll = fluid_agent->
propBufAll;
117 const std::string fluidBufB = fluid_agent->
fluidBufB;
118 const std::string fluidBufNB = fluid_agent->
fluidBufNB;
119 const std::string fluidBufNG = fluid_agent->
fluidBufNG;
121 solid_agent =
new SolidAgent(
this, normalize_modname(solidmodule), solidmodule, com, 1);
122 add_agent( solid_agent);
123 const std::string solidBuf = solid_agent->
solidBuf;
124 const std::string solid_propBufAll = solid_agent->
propBufAll;
125 const std::string solid_propBuf = solid_agent->
propBuf;
127 burn_agent =
new BurnAgent(
this,
"Rocburn", burnmodule, com, fluidBufB);
128 add_agent( burn_agent);
129 const std::string iburn_ng = burn_agent->iburn_ng;
137 init_scheduler.add_action(
new GetDeformedMesh(fluid_agent, solid_agent,
138 solidBuf+
".x", solidBuf+
".uhat",
141 std::string propBuf = solid_agent->
propBufAll;
142 if (!PROP_fom) propBuf = solid_agent->
propBuf;
143 init_scheduler.add_action(
new ComputePconn(solid_agent,
146 propBuf+
".pmesh", &solid_agent->
withALE));
148 init_scheduler.add_action(
new BCInvoker(solid_agent, 1));
151 if (initial_start()) {
152 init_scheduler.add_action(
new CopyValue(fluidBufNG+
".nc", fluidBufNG+
".nc_t0"));
156 init_scheduler.add_action(
new GMInvoker( fluid_agent));
158 init_scheduler.add_action(
new BCInvoker(fluid_agent, 1));
159 init_scheduler.add_action(
new BCInvoker(fluid_agent, 2));
162 if (initial_start()) {
165 fluid_agent, solid_agent,
166 fluidBufNG+
".pf", fluidBufB+
".mdot",
181 fluid_agent, solid_agent,
182 solidBuf+
".x", solidBuf+
".uhat",
183 solidBuf+
".nc", zoom));
189 if (initial_start()) {
191 burn_agent->add_icaction(
new BCInvoker(burn_agent));
193 iburn_ng+
".nc", iburn_ng+
".centers"));
199 solidBuf+
".rhos", fluidBufNG+
".rhos"));
204 iburn_ng+
".qc",
"_alp", 1));
206 iburn_ng+
".qr",
"_alp", 1));
208 iburn_ng+
".Tf",
"_alp", 1));
210 iburn_ng+
".rhos",
"_alp", 1));
213 scheduler.add_action( burn_agent->get_main_action());
220 fluidBufNG+
".qc", fluidBufNG+
".qr",
231 solid_agent, burn_agent,
233 solidBuf+
".ts", solidBuf+
".pf"));
235 fluid_agent, solid_agent,
236 iburn_ng+
".rb", solidBuf+
".rb"));
239 solid_propBufAll+
".vbar", zoom));
248 solid_propBufAll+
".vbar",
"_alp", 1), 1);
257 fluid_agent, solid_agent,
258 solidBuf+
".x", solidBuf+
".uhat",
259 solidBuf+
".nc", zoom));
266 iburn_ng+
".Tflm", fluidBufNB+
".Tb"));
269 solidBuf+
".u", fluidBufNG+
".total_disp",
272 fluid_agent, solid_agent,
273 solidBuf+
".vs", fluidBufNG+
".vs"));
275 solid_agent, burn_agent,
276 fluidBufNG+
".mdot"));
282 iburn_ng+
".Tflm"), 1);
284 fluidBufNB+
".Tb"), 1);
288 fluidBufB+
".mdot"), 2);
292 fluidBufB+
".mdot_alp", zoom), 2);
294 fluidBufNG+
".vs"), 2);
296 fluidBufNG+
".vs_alp",
297 fluidBufNG+
".rhof_alp",
298 fluidBufNG+
".rhofvf_alp"), 2);
301 fluidBufB+
".mdot_alp",
302 fluidBufB+
".rhofvf_alp",
307 fluid_propBufAll+
".vm",
316 fluidBufNG+
".pf", fluidBufB+
".mdot",
void add_bcaction(Action *act, int l=1)
void add_bcinitaction(Action *act)
std::string get_surface_window() const
void add_gmaction(Action *act)
Action * get_main_action()