Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FluidBurnAlone Class Reference

#include <builtin_couplings.h>

Inheritance diagram for FluidBurnAlone:
Collaboration diagram for FluidBurnAlone:

Public Member Functions

 FluidBurnAlone (const char *, const char *, MPI_Comm com, Control_parameters *p, const RocmanControl_parameters *mp)
 
- Public Member Functions inherited from Coupling
 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 ()
 
Agentadd_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 ()
 
virtual void update_integrals (double currentTime)
 
virtual void update_distances (double currentTime)
 
void output_restart_files (double t)
 
void output_visualization_files (double t)
 
const Control_parametersget_control_param ()
 
const RocmanControl_parametersget_rocmancontrol_param ()
 
void read_restart_info ()
 
void write_restart_info (double CurrentTime, int iStep)
 
void restart_at_time (double t, int step)
 
virtual void reload_rocface (const RocmanControl_parameters *param)
 
void print (const char *fname)
 
void Interrupt (int *, const char *)
 
int ProcessInterrupt ()
 

Protected Attributes

double flm_temp
 
- Protected Attributes inherited from Coupling
std::string coupling_name
 
vector< std::string > modules
 
AgentList agents
 
UserScheduler scheduler
 
UserScheduler init_scheduler
 
int comm_rank
 
int init_started
 
int restarting
 
int init_remeshed
 
int iPredCorr
 
int maxPredCorr
 
Control_parametersparam
 
const RocmanControl_parametersrocmanparam
 
std::string restartInfo
 
int overwrite_integ
 
std::string integFname
 
int overwrite_dist
 
std::string distFname
 

Additional Inherited Members

- Protected Member Functions inherited from Coupling
void callMethod (Scheduler_voidfn1_t fn, double t)
 
std::string normalize_modname (const char *mod)
 

Detailed Description

Definition at line 38 of file builtin_couplings.h.

Constructor & Destructor Documentation

FluidBurnAlone ( const char *  fluidmodule,
const char *  burnmodule,
MPI_Comm  com,
Control_parameters p,
const RocmanControl_parameters mp 
)

Definition at line 200 of file builtin_couplings.C.

References UserScheduler::add_action(), Coupling::add_agent(), Agent::add_bcaction(), Agent::add_bcinitaction(), Agent::add_gmaction(), Agent::add_icaction(), FluidAgent::fluidBufB, FluidAgent::fluidBufNG, Coupling::get_control_param(), Agent::get_coupling(), Agent::get_main_action(), Agent::get_surface_window(), BurnAgent::iburn_ng, Coupling::init_scheduler, Coupling::initial_start(), Coupling::maxPredCorr, RocmanControl_parameters::PROP_fom, FluidAgent::propBuf, FluidAgent::propBufAll, RocmanControl_parameters::rhoc, Coupling::scheduler, and Control_parameters::zoomFactor.

202  :
203  Coupling("FluidBurnAlone", fluidmodule, burnmodule, p, mp)
204 {
205  maxPredCorr = 1;
206 
207  // Create agents
208  FluidAgent *fluid_agent = new FluidAgent( this, fluidmodule, fluidmodule, com);
209  add_agent( fluid_agent);
210  const std::string propBufAll = fluid_agent->propBufAll;
211  const std::string fluidBufB = fluid_agent->fluidBufB;
212  const std::string fluidBufNG = fluid_agent->fluidBufNG;
213 
214  BurnAgent *burn_agent = new BurnAgent( this, "Rocburn", burnmodule, com, fluidBufB);
215  add_agent( burn_agent);
216  const std::string iburn_ng = burn_agent->iburn_ng;
217 
218  const double rhoc = mp->rhoc;
219  double zoom = burn_agent->get_coupling()->get_control_param()->zoomFactor;
220 
221  // ########### INITIALIZATION ############
222 
223  // POST_INIT_FLUID
224  if (initial_start()) {
225  if (zoom > 0) {
226  std::string propBuf = fluid_agent->propBufAll;
227  int PROP_fom = mp->PROP_fom;
228  if (!PROP_fom) propBuf = fluid_agent->propBuf;
229  init_scheduler.add_action( new ComputePconn(fluid_agent,
230  propBufAll+".mesh",
231  propBufAll+".pconn",
232  propBuf+".pmesh"));
233  }
234  // INIT_INBUFF_FLUID
235  init_scheduler.add_action( new BCInitInvoker( fluid_agent));
236  init_scheduler.add_action( new Reset_du_alp( fluid_agent));
237  init_scheduler.add_action( new BCInvoker(fluid_agent, 1));
238  init_scheduler.add_action( new BCInvoker(fluid_agent, 2));
239  }
240 
241  // ########### BURN ############
242 
243 //RAF if (initial_start()) {
244  if (initial_start()) {
245  burn_agent->add_icaction( new BCInitInvoker(burn_agent));
246  // UPDATE_INBUFF_BC_BURN called in POST_INIT_BURN
247  burn_agent->add_icaction( new BCInvoker(burn_agent));
248  burn_agent->add_icaction( new ComputeFaceCenters(burn_agent,
249  iburn_ng+".nc",
250  iburn_ng+".centers",
251  iburn_ng+".normals"));
252  }
253 
254  // POST_INIT_BURN and INIT_BUFF_BURN
255  // INIT_INBUFF_BURN
256  burn_agent->add_bcinitaction( new CopyBurnFromParentMesh(burn_agent, fluid_agent));
257  burn_agent->add_bcinitaction( new SetValueDouble(iburn_ng+".rhos", rhoc));
258 
259  burn_agent->add_bcaction( new Extrapolate_Linear(burn_agent, fluid_agent,
260  iburn_ng+".pf"));
261  burn_agent->add_bcaction( new Extrapolate_Central(burn_agent, fluid_agent,
262  iburn_ng+".qc", "_alp", 1));
263  burn_agent->add_bcaction( new Extrapolate_Central(burn_agent, fluid_agent,
264  iburn_ng+".qr", "_alp", 1));
265  burn_agent->add_bcaction( new Extrapolate_Linear(burn_agent, fluid_agent,
266  iburn_ng+".Tf", "_alp", 1));
267  burn_agent->add_bcaction( new Extrapolate_Linear(burn_agent, fluid_agent,
268  iburn_ng+".Tv", "_alp", 1));
269  burn_agent->add_bcaction( new Extrapolate_Linear(burn_agent, fluid_agent,
270  iburn_ng+".dn", "_alp", 1));
271  burn_agent->add_bcaction( new Extrapolate_Linear(burn_agent, burn_agent,
272  iburn_ng+".rhos", "_alp", 1));
273 
274  // burn main Physics routine
275  scheduler.add_action( burn_agent->get_main_action());
276 
277  // ########### FLUID ############
278 
279  // INIT_INBUFF_FLUID
280 // fluid_agent->add_bcinitaction( new DummyPrint(burn_agent, NULL, fluid_agent, "fluid"));
281  fluid_agent->add_bcinitaction( new SetZero( propBufAll+".vm"));
282  fluid_agent->add_bcinitaction( new FluidPropagateSurface( fluid_agent,
283  burn_agent,
284  iburn_ng+".rb", propBufAll+".vm", zoom));
285  fluid_agent->add_bcinitaction( new CopyBflagFromBurn( burn_agent));
286  fluid_agent->add_bcinitaction( new MassTransfer( fluid_agent, burn_agent,
287  iburn_ng+".rhos", iburn_ng+".rb",
288  fluidBufNG+".mdot"));
289 
290  // UPDATE_INBUFF_BC_FLUID
291  // Level-1 boundary condition:
292  fluid_agent->add_bcaction( new Interpolate_Linear( burn_agent, burn_agent,
293  iburn_ng+".Tflm"), 1);
294 
295  // Level-2 boundary condition
296  fluid_agent->add_bcaction( new Interpolate_Central( fluid_agent, fluid_agent,
297  fluidBufB+".mdot"), 2);
298  //fluid_agent->add_bcaction( new DummyPrint(burn_agent, NULL, fluid_agent, "MDOT"), 2);
299  fluid_agent->add_bcaction( new Interpolate_Central( burn_agent, burn_agent,
300  iburn_ng+".rb"), 2);
301  fluid_agent->add_bcaction( new ZoomInterface( fluid_agent, burn_agent,
302  fluidBufB+".mdot_alp", zoom), 2);
303  fluid_agent->add_bcaction( new SetZero( fluidBufNG+".rhofvf_alp"), 2);
304  fluid_agent->add_bcaction( new ComputeBurnPane( fluid_agent, burn_agent, NULL,
305  fluidBufB+".mdot_alp",
306  fluidBufB+".rhofvf_alp",
307  zoom), 2);
308 
309  // UPDATE_INBUFF_GM_FLUID()
310  fluid_agent->add_gmaction( new ComputeMeshMotion( fluid_agent,
311  propBufAll+".vm",
312  fluid_agent->get_surface_window()+".du_alp",
313  zoom));
314 
315  // Create and register actions
316  scheduler.add_action( fluid_agent->get_main_action());
317 
318 }
std::string fluidBufB
Definition: FluidAgent.h:80
virtual void add_action(Action *)
Definition: Scheduler.C:401
Agent * add_agent(Agent *)
Add new agent.
Definition: Coupling.C:174
int maxPredCorr
Definition: Coupling.h:111
std::string propBufAll
Definition: FluidAgent.h:77
void add_bcaction(Action *act, int l=1)
Definition: Agent.C:393
void add_bcinitaction(Action *act)
Definition: Agent.C:387
std::string iburn_ng
Definition: BurnAgent.h:55
std::string get_surface_window() const
Definition: Agent.h:217
std::string propBuf
Definition: FluidAgent.h:79
void add_gmaction(Action *act)
Definition: Agent.C:411
Coupling * get_coupling()
Definition: Agent.h:213
std::string fluidBufNG
Definition: FluidAgent.h:78
double zoomFactor
Definition: Coupling.h:64
UserScheduler init_scheduler
Definition: Coupling.h:104
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.
Definition: Coupling.C:130
UserScheduler scheduler
Definition: Coupling.h:103
void add_icaction(Action *act)
Definition: Agent.C:381
Action * get_main_action()
Definition: Agent.h:183
const Control_parameters * get_control_param()
Definition: Coupling.h:183
int initial_start() const
Definition: Coupling.h:163

Here is the call graph for this function:

Member Data Documentation

double flm_temp
protected

Definition at line 43 of file builtin_couplings.h.


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