Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FluidAgent.C
Go to the documentation of this file.
1 /* *******************************************************************
2  * Rocstar Simulation Suite *
3  * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4  * *
5  * Illinois Rocstar LLC *
6  * Champaign, IL *
7  * www.illinoisrocstar.com *
8  * sales@illinoisrocstar.com *
9  * *
10  * License: See LICENSE file in top level of distribution package or *
11  * http://opensource.org/licenses/NCSA *
12  *********************************************************************/
13 /* *******************************************************************
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17  * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21  * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22  *********************************************************************/
23 // $Id: FluidAgent.C,v 1.69 2009/09/14 14:18:27 mtcampbe Exp $
24 
25 #include "sys/types.h"
26 #include "sys/stat.h"
27 
28 #include "rocman.h"
29 #include "FluidAgent.h"
30 #include "Interpolate.h"
31 
32 #ifdef STATIC_LINK
33 extern "C" void COM_F_FUNC2(rocflo_load_module, ROCFLO_LOAD_MODULE)( const char *, int);
34 extern "C" void COM_F_FUNC2(rocflo_unload_module, ROCFLO_UNLOAD_MODULE)( const char *, int);
35 extern "C" void COM_F_FUNC2(rocflu_load_module, ROCFLU_LOAD_MODULE)( const char *, int);
36 extern "C" void COM_F_FUNC2(rocflu_unload_module, ROCFLU_UNLOAD_MODULE)( const char *, int);
37 #endif
38 
39 //const char *FluidAgent::window_name = "FluidAgent";
40 
41 FluidAgent::FluidAgent(Coupling *cp, std::string mod, std::string obj, MPI_Comm com, int withSolid) :
42  Agent(cp, mod, obj, "Fluid", com, true),
43  with_plag(false), with_solid(withSolid)
44 {
45  load_module();
46 
47  ifluid = "ifluid"; // for input
48  fluid = "fluid";
49  fluid_plag = "fluid_plag";
50 
51  // Rocin windows, Input buffer windows
52  fluidSurfIn = "fluidSurfIn";
53  fluidVolIn = "fluidVolIn";
54  fluidPlagIn = "fluidPlagIn";
55  fluidVPIn = "fluidVolIn fluidPlagIn";
56 
57  ifluid_all = "ifluid_all"; // tmp buffer
58  ifluid_i = "ifluid"; // FluidBuf
59 
60  // Surface windows for Rocout, Surface window buffers
61  ifluid_b = "ifluid_b"; // fluidBufBOUT
62  ifluid_nb = "ifluid_nb"; // fluidBufNBOUT
63  ifluid_ni = "ifluid_ni"; // fluidBufNIOUT
64 
65  propBufAll = "FluidPropAll";
66  fluidBufNG = "FluidBufNG"; // fluidBufNG
67  propBuf = "FluidProp";
68  fluidBufB = "FluidBufB";
69  fluidBufNB = "FluidBufNB";
70 
71  fluidBufPC = "FluidBufPC"; // surface data to be backed up
72  fluidBufBak = "fluidBufBak"; // back up PC iterations
73  fluidBufPRE = "FluidBufPRE"; // for convergence check
74 
75  fluidVolBak = "FluidVolBak"; // backup of volume data
76  fluidPlagBak = "FluidPlagBak"; // backup of volume data
77 
79 
80  if (!with_solid) dobackup = 0;
81 }
82 
84 {
85  MAN_DEBUG(3, ("[%d] Rocstar: FluidAgent::load_module %s %s.\n", comm_rank, rocmod_name.c_str(), mod_instance.c_str()));
86 
87 #ifdef STATIC_LINK
88 # ifdef RFLO
89  if (rocmod_name == "Rocflo")
90  COM_F_FUNC2( rocflo_load_module, ROCFLO_LOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
91 # elif defined(RFLU)
92  if (rocmod_name == "Rocflu")
93  COM_F_FUNC2( rocflu_load_module, ROCFLU_LOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
94 # else
95  COM_assertion_msg(0, "Unknown FluidAgent mod!");
96 # endif
97 #else // dynamic loading
98  COM_assertion_msg(rocmod_name == "Rocflo" || rocmod_name == "Rocflu",
99  (std::string("Unknown FluidAgent module:")+rocmod_name).c_str());
100  COM_load_module(rocmod_name.c_str(), mod_instance.c_str());
101 #endif
102 
103  init_function_handles(); // defined in Agent
104 }
105 
107 {
108  MAN_DEBUG(3, ("Rocstar: FluidAgent::unload_module %s.\n", rocmod_name.c_str()));
109 #ifdef STATIC_LINK
110 # ifdef RFLO
111  if (rocmod_name == "Rocflo")
112  COM_F_FUNC2( rocflo_unload_module, ROCFLO_UNLOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
113 # else
114 # ifdef RFLU
115  if (rocmod_name == "Rocflu")
116  COM_F_FUNC2( rocflu_unload_module, ROCFLU_UNLOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
117 # endif
118 # endif
119 #else
120  // in restarting, close_module does not dlclose the shared lib
121  if (get_coupling()->in_restart())
122  COM_close_module(rocmod_name.c_str(), mod_instance.c_str());
123  else
124  COM_unload_module(rocmod_name.c_str(), mod_instance.c_str());
125 #endif
126 }
127 
128 void FluidAgent::input( double t) {
129 
130  MPI_Barrier(communicator);
131  // if(!comm_rank)
132  // std::cout << "Fluid agent reading surface input." << std::endl;
134  // std::cout << comm_rank << ": done reading surface." << std::endl;
135  MPI_Barrier(communicator);
136  // if(!comm_rank)
137  // std::cout << "Fluid agent done reading surface input, reading volume" << std::endl;
139  // std::cout << comm_rank << ": done reading volume." << std::endl;
140  MPI_Barrier(communicator);
141  // if(!comm_rank)
142  // std::cout << "Fluid agent done reading volume" << std::endl;
143 
144 #ifndef NATIVE_MP_IO
148  }
149 #else
152 #endif
153 
154  MPI_Barrier(communicator);
155  // std::cout << "All processors made it past reading" << std::endl;
156 }
157 
158 // called in Coupling::init()
159 void FluidAgent::init_module( double t, double dt) {
160  MAN_DEBUG(3, ("Rocstar: FluidAgent::init_module t=%e dt=%e.\n", t, dt));
161 
162  Agent::init_module(t, dt);
163 
164  // Call initialization routine of physics module
165  // was in Rocman.f90
167  fluidSurfIn.c_str(), fluidVPIn.c_str(),
169 
170  // Delete input buffer windows
173 #ifndef NATIVE_MP_IO
175 #endif
176  // INITIALIZE_XXX common portion
177 
178  // Reassign vol_window
179  std::string::size_type pos = vol_window.find( " ");
180  if ( pos != std::string::npos) {
181  plag_window = vol_window.substr( pos+1, vol_window.size());
182  vol_window = vol_window.substr( 0, pos);
183  }
184  with_plag = !plag_window.empty();
185 #ifdef NATIVE_MP_IO
186  with_plag = false;
187 #endif
188  MAN_DEBUG(3, ("Rocstar: vol_window = %s with_plag = %d.\n", vol_window.c_str(), with_plag));
189 
190  // Split surface window for output
191  // ifluid is fluidBuf in INITIALIZE_FLUID() ???
192  //split_surface_window( ifluid_all, ifluid_i, ifluid_nb, ifluid_b, ifluid_ni);
193 /*
194  std::string bcflag = surf_window+".bcflag";
195  COM_use_attribute( ifluid_i, surf_window+".mesh", 1, bcflag.c_str(), 0);
196  COM_use_attribute( ifluid_i, surf_window+".mesh", 1, bcflag.c_str(), 1);
197  COM_window_init_done( ifluid_i);
198 */
199 }
200 
201 // called in init callback (ic_handle)
203 {
205 
208  // COM_use_attribute( propBufAll, surf_window+".bcflag");
209  // Mesh motion velocities
210  COM_new_attribute( propBufAll+".vm", 'n', COM_DOUBLE, 3, "m/s");
211  COM_new_attribute( propBufAll+".rb", 'e', COM_DOUBLE, 1, "m/s");
212  COM_new_attribute( propBufAll+".positions",'n',COM_DOUBLE,3,"m");
213  COM_new_attribute( propBufAll+".cflag",'n',COM_INTEGER,1,"");
214  COM_resize_array(propBufAll+".atts");
215  if ( COM_get_attribute_handle( surf_window+".cnstr_type") >0) {
217  COM_use_attribute( propBufAll, surf_window+".cnstr_type");
219  // a temporary buffer to store ".cnstr_type" of fluid at restart
220  COM_clone_attribute( propBufAll+".cnstr_type_bak", surf_window+".cnstr_type");
221  }
224 
225  std::string bcflag = surf_window+".bcflag";
226  // create a window for surface propagation if run in fluid-alone
227  if ( !with_solid) {
229  COM_use_attribute( propBuf, surf_window+".mesh", 0, bcflag.c_str(), 1);
234  }
235 
236  // update
237  //split_surface_window( ifluid_all, ifluid_i, ifluid_nb, ifluid_b, ifluid_ni);
238 
239  // ifluid_i is the fluidBuf in old rocman
240  // Precondition: The window fluidSurf should have been defined and contain
241  // the following variables: pf, qc, qr, rhof_alp, nf_alp, tf, Tf, mdot_alp,
242  // Tflm_alp, du_alp, and rhofvf_alp.
243 
245  COM_use_attribute( ifluid_i, surf_window+".mesh", 1, bcflag.c_str(), 0);
246  COM_use_attribute( ifluid_i, surf_window+".mesh", 1, bcflag.c_str(), 1);
247 
248  COM_new_attribute(ifluid_i+".rhos", 'e', COM_DOUBLE, 1, "kg/(m^3)");
249  COM_new_attribute(ifluid_i+".mdot", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
250  COM_new_attribute(ifluid_i+".mdot_old", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
251  COM_new_attribute(ifluid_i+".mdot_grad", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
252  COM_new_attribute(ifluid_i+".mdot_tmp", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
253  COM_resize_array(ifluid_i+".rhos");
254  COM_resize_array(ifluid_i+".mdot");
255  COM_resize_array(ifluid_i+".mdot_old");
256  COM_resize_array(ifluid_i+".mdot_grad");
257  COM_resize_array(ifluid_i+".mdot_tmp");
258 
259  COM_new_attribute( ifluid_i+".vs", 'e', COM_DOUBLE, 3, "m/s");
260  COM_new_attribute( ifluid_i+".vs_alp", 'e', COM_DOUBLE, 3, "m/s");
261  COM_new_attribute( ifluid_i+".vs_old", 'e', COM_DOUBLE, 3, "m/s");
262  COM_resize_array( ifluid_i+".vs");
263  COM_resize_array( ifluid_i+".vs_alp");
264  COM_resize_array( ifluid_i+".vs_old");
265 
266  // for compute distances
267  if ( with_solid) {
268  COM_clone_attribute( ifluid_i+".nc_tmp", surf_window+".nc");
269  COM_new_attribute( ifluid_i+".sq_dist", 'n', COM_DOUBLE, 1, "m");
270  COM_resize_array( ifluid_i+".sq_dist");
271  }
272 
274 // COM_resize_array( ifluid_i+".atts");
276 
278  COM_use_attribute( fluidBufNG, ifluid_i+".mesh", 0, "", 0);
284 
286  COM_use_attribute( fluidBufB, surf_window+".mesh", 0, bcflag.c_str(), 1);
292 
294  COM_use_attribute( fluidBufNB, surf_window+".mesh", 0, bcflag.c_str(), 0);
300 
301  //COM_delete_window( ifluid_b);
302  //COM_delete_window( ifluid_nb);
303  //COM_delete_window( ifluid_ni);
304 
305  // Create windows for output of burning patches, including ghost nodes/cells
306  // (variables include all of fluidSurf, and mdot, mdot_old, vm,
307  // vs, vs_old, ts, nc_t0, sq_dist)
309  COM_use_attribute( ifluid_b, surf_window+".mesh", 1, bcflag.c_str(), 1);
311 
314 
315  if ( with_solid) {
317  COM_use_attribute( ifluid_b, ifluid_i+".vs_old");
318  if (COM_get_attribute_handle( ifluid_i+".ts")>0) {
320  COM_use_attribute( ifluid_b, ifluid_i+".nc_t0");
321  COM_use_attribute( ifluid_b, ifluid_i+".sq_dist");
322  }
323  }
324 
326  COM_use_attribute( ifluid_b, ifluid_i+".mdot_old");
327 
329 
330  // Create windows for output of nonburning patches, including ghosts.
331  // (variables include all of fluidSurf, and vm, vm_old, vs, vs_old,
332  // ts, nc_t0, sq_dist)
334  COM_use_attribute( ifluid_nb, surf_window+".mesh", 1, bcflag.c_str(),0);
336 
339 
340  if ( with_solid) {
342  COM_use_attribute( ifluid_nb, ifluid_i+".vs_old");
343  if (COM_get_attribute_handle( ifluid_i+".ts")>0) {
346  COM_use_attribute( ifluid_nb, ifluid_i+".sq_dist");
347  }
348  }
350 
351  // Create windows for output of nonburning patches, including ghosts.
352  // (variables include all of fluidSurf)
354  COM_use_attribute( ifluid_ni, surf_window+".mesh", 1, bcflag.c_str(),2);
356 
359 
361 
362  // setup for pc iterations
363  int maxPredCorr = get_coupling()->get_max_ipc();
364  if ( maxPredCorr>1) {
365  // Create a window to encapsulate the surface data to be backed up
370 
371  // Create a window to store backed-up surface data
376 
377  // Create window for backing up volume data
383 
384  // Create window for backing up Plag data
385  if ( with_plag) {
391  }
392 
393  // Create window for convergence check
401 
402  // Initlaize the attribute handles to be stored/restored
405 
408 
409  pc_count = 2;
410  if ( with_plag) {
413  pc_count ++;
414  }
421  }
422 
423  // Split surface window for output
424  // ifluid is fluidBuf in INITIALIZE_FLUID() ???
425  // update
426 // split_surface_window( ifluid_all, ifluid_i, ifluid_nb, ifluid_b, ifluid_ni);
427 
428  // for compute_distances
432 
433  if (!get_coupling()->initial_start()) {
434  int cnstr_type_hdl = COM_get_attribute_handle( surf_window+".cnstr_type");
435  int cnstr_type_bak_hdl = COM_get_attribute_handle( propBufAll+".cnstr_type_bak");
436  if (cnstr_type_hdl > 0) {
437  // backup ".cnstr_type" of fluid and restore it later
438  // this will discard the values in HDF restart files!
439  COM_call_function( RocBlas::copy, &cnstr_type_hdl, &cnstr_type_bak_hdl);
440  }
442  if (cnstr_type_hdl > 0) {
443  COM_call_function( RocBlas::copy, &cnstr_type_bak_hdl, &cnstr_type_hdl);
444  }
445  }
446 }
447 
449 {
450  // Obtain data for fluidBuf
451  int atts_hdl = COM_get_attribute_handle_const(fluidSurfIn+".atts");
452  int buf_hdl = COM_get_attribute_handle( ifluid_i+".atts");
453  COM_call_function( obtain_attr_handle, &atts_hdl, &buf_hdl);
454 
455  // Obtain data for propBufAll
456  int propBufAll_hdl = COM_get_attribute_handle( propBufAll+".atts");
457  COM_call_function( obtain_attr_handle, &atts_hdl, &propBufAll_hdl);
458 
459  // Obtain pconn for surface propagation
460  int pconn_hdl_const = COM_get_attribute_handle_const( fluidSurfIn+".pconn");
461  int pconn_hdl = COM_get_attribute_handle( fluidSurfIn+".pconn");
462  COM_call_function( obtain_attr_handle, &pconn_hdl_const, &pconn_hdl);
464 }
465 
467  static const std::string ifluid_prefix = "ifluid_all";
468 
469  if (pre_hdf_handle != -1)
471 
472  // Write out surface sub-windows
473 #if 1
474  write_data_files( t, ifluid_b, ifluid_b+".all");
475  write_data_files( t, ifluid_nb, ifluid_nb+".all");
476  write_data_files( t, ifluid_ni, ifluid_ni+".all");
477 #else
478  write_data_files( t, ifluid_prefix, ifluid_all+".all");
479 #endif
480  write_control_file( t, "ifluid*", surf_window.c_str());
481 
482  // Write out volume window
483  write_data_files( t, fluid, (vol_window+".all").c_str());
484  write_control_file( t, fluid, vol_window.c_str());
485 
486  // Write out Plag window
487  if ( with_plag) {
488  write_data_files( t, fluid_plag, (plag_window+".all").c_str());
490  }
491 
492  if (post_hdf_handle != -1)
494 
495 }
496 
497 // Visualization window buffers
498 static const char *ifluid_vis = "ifluid_vis";
499 static const char *fluid_vis = "fluid_vis";
500 static const char *fluid_plag_vis = "fluid_plag_vis";
501 
502 static const char *ifluid_b_vis = "ifluid_b_vis";
503 static const char *ifluid_nb_vis = "ifluid_nb_vis";
504 static const char *ifluid_ni_vis = "ifluid_ni_vis";
505 
506 
508  // TODO: Define visualization sub-windows
509 }
510 
512 {
513  if ( !with_solid)
523 
524  int maxPredCorr = get_coupling()->get_max_ipc();
525  if ( maxPredCorr>1) {
531  }
532 
533  Agent::finalize();
534 }
535 
536 void FluidAgent::init_convergence( int iPredCorr)
537 {
538  MAN_DEBUG(2, ("Rocstar: FluidAgent::init_convergence at %d.\n", iPredCorr));
539 
540  // Copy current solution to pre for convergence check
542 
544 
546 
547  // STORE_SOLUTIONS
548  Agent::init_convergence( iPredCorr);
549 }
550 
551 int FluidAgent::check_convergence( double tolerMass, double tolerTract, double tolerVelo)
552 {
553  MAN_DEBUG(3, ("Rocstar: FluidAgent::check_convergence .\n"));
554 
555  int result = 0;
556  if (!check_convergence_help(f_vm_hdl, f_vm_pre_hdl, tolerVelo, "vm")) return result;
557  if (!check_convergence_help(f_ts_hdl, f_ts_pre_hdl, tolerTract, "ts")) return result;
558  if (!check_convergence_help(f_mdot_hdl, f_mdot_pre_hdl, tolerMass, "mdot")) return result;
559  return 1;
560 }
561 
563 {
564  if (compute_integrals_handle > 0) {
565  MAN_DEBUG(3, ("Rocstar: FluidAgent::compute_integrals.\n"));
567  }
568  return 1;
569 }
570 
571 
572 
573 
574 
575 
576 
577 
int get_max_ipc() const
Definition: Coupling.h:161
FluidAgent(Coupling *coup, std::string mod, std::string obj, MPI_Comm com, int withSolid=0)
Definition: FluidAgent.C:41
string plag_window
Definition: FluidAgent.h:53
int ic_handle
Definition: Agent.h:136
std::string fluidPlagIn
Definition: FluidAgent.h:66
string rocmod_name
Definition: Agent.h:141
virtual void init_module(double t, double dt)
Definition: Agent.C:416
bool with_plag
Definition: FluidAgent.h:52
std::string ifluid_all
Definition: FluidAgent.h:69
void write_data_files(double t, const std::string base, const std::string attr, const char *ref=NULL)
Definition: Agent.C:631
virtual void output_restart_files(double t)
Definition: FluidAgent.C:466
int sq_dist_hdl
Definition: FluidAgent.h:92
T mod(const T &x, const T &m)
Return the modulo of a number.
Definition: CImg.h:4788
void COM_delete_window(const char *wname)
Definition: roccom_c++.h:94
virtual int compute_integrals()
Definition: FluidAgent.C:562
std::string fluidBufB
Definition: FluidAgent.h:80
std::string fluidBufBak
Definition: FluidAgent.h:84
virtual void create_buffer_all()
Definition: FluidAgent.C:202
#define COM_assertion_msg(EX, msg)
int nc_hdl
Definition: FluidAgent.h:92
int in_restart() const
Definition: Coupling.h:164
virtual void input(double t)
Definition: FluidAgent.C:128
std::string fluidVPIn
Definition: FluidAgent.h:67
static const char * fluid_plag_vis
Definition: FluidAgent.C:500
static int copy
Definition: RocBlas.h:34
std::string ifluid_b
Definition: FluidAgent.h:73
int init_handle
Definition: Agent.h:131
std::string fluidVolBak
Definition: FluidAgent.h:87
int f_ts_hdl
Definition: FluidAgent.h:90
int pc_hdls[2][3]
Definition: Agent.h:158
int COM_get_attribute_handle(const char *waname)
Definition: roccom_c++.h:412
#define COM_F_FUNC2(lowcase, uppercase)
Definition: roccom_basic.h:87
subroutine rocflu_unload_module(winName)
std::string propBufAll
Definition: FluidAgent.h:77
int compute_integrals_handle
Definition: Agent.h:133
virtual void output_visualization_files(double t)
Definition: FluidAgent.C:507
std::string ifluid_i
Definition: FluidAgent.h:70
subroutine rocflo_unload_module(winName)
std::string propBuf
Definition: FluidAgent.h:79
std::string fluid
Definition: FluidAgent.h:61
std::string fluidPlagBak
Definition: FluidAgent.h:88
Definition: Agent.h:110
virtual void unload_module()
Definition: FluidAgent.C:106
void COM_load_module(const char *libname, const char *winname)
Definition: roccom_c++.h:75
void COM_use_attribute(const char *wname, const char *attr, int wg=1, const char *ptnname=0, int val=0)
Use the subset of panes of another window of which the given pane attribute has value val...
Definition: roccom_c++.h:224
std::string vol_window
Definition: Agent.h:148
int f_ts_pre_hdl
Definition: FluidAgent.h:90
virtual int check_convergence(double tolerMass, double tolerTract, double tolerVelo)
Definition: FluidAgent.C:551
Coupling * get_coupling()
Definition: Agent.h:213
std::string fluidBufNG
Definition: FluidAgent.h:78
int post_hdf_handle
Definition: Agent.h:132
static const char * ifluid_nb_vis
Definition: FluidAgent.C:503
int read_by_control_file(double t, const std::string base, const std::string window)
Definition: Agent.C:588
void COM_close_module(const char *libname, const char *winname=NULL)
Definition: roccom_c++.h:81
std::string fluidVolIn
Definition: FluidAgent.h:65
virtual void create_buffer_all()
Definition: Agent.C:361
int f_vm_pre_hdl
Definition: FluidAgent.h:90
int check_convergence_help(int vcur, int vpre, double tol, std::string str)
Definition: Agent.C:743
std::string surf_window
Definition: Agent.h:148
std::string tmp_window
Definition: Agent.h:149
void COM_window_init_done(const char *w_str, int pane_changed=true)
Definition: roccom_c++.h:102
virtual void load_module()
Definition: FluidAgent.C:83
virtual void read_restart_data()
Definition: FluidAgent.C:448
static const char * ifluid_vis
Definition: FluidAgent.C:498
MPI_Comm communicator
Definition: Agent.h:114
void COM_clone_attribute(const char *wname, const char *attr, int wg=1, const char *ptnname=0, int val=0)
Clone the subset of panes of another window of which the given pane attribute has value val...
Definition: roccom_c++.h:234
int pre_hdf_handle
Definition: Agent.h:132
void COM_new_window(const char *wname, MPI_Comm c=MPI_COMM_NULL)
Definition: roccom_c++.h:86
std::string fluid_plag
Definition: FluidAgent.h:62
void COM_call_function(const int wf, int argc,...)
Definition: roccom_c.C:48
void COM_unload_module(const char *libname, const char *winname=NULL)
Definition: roccom_c++.h:78
int f_mdot_pre_hdl
Definition: FluidAgent.h:90
void write_control_file(double t, const std::string base, const std::string window)
Definition: Agent.C:657
virtual void finalize()
Definition: FluidAgent.C:511
int COM_get_attribute_handle_const(const char *waname)
Definition: roccom_c++.h:420
int dobackup
Definition: Agent.h:139
void init_function_handles()
Definition: Agent.C:234
subroutine rocflu_load_module(winName)
virtual void finalize()
Definition: Agent.C:466
int f_vm_hdl
Definition: FluidAgent.h:90
std::string ifluid_ni
Definition: FluidAgent.h:75
std::string fluidBufPC
Definition: FluidAgent.h:83
virtual void init_module(double t, double dt)
Definition: FluidAgent.C:159
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
static const char * fluid_vis
Definition: FluidAgent.C:499
int pc_count
Definition: Agent.h:160
void create_registered_window_attributes(std::string target_window)
Definition: Agent.C:350
virtual void init_convergence(int iPredCorr)
Definition: FluidAgent.C:536
int nc_tmp_hdl
Definition: FluidAgent.h:92
std::string fluidSurfIn
Definition: FluidAgent.h:64
void COM_new_attribute(const char *wa_str, const char loc, const int type, int ncomp, const char *unit)
Registering an attribute type.
Definition: roccom_c++.h:118
subroutine rocflo_load_module(winName)
virtual void init_convergence(int iPredCorr)
Definition: Agent.C:720
static int obtain_attr_handle
Definition: Agent.h:125
static const char * ifluid_ni_vis
Definition: FluidAgent.C:504
string mod_instance
Definition: Agent.h:141
int with_solid
Definition: FluidAgent.h:54
std::string ifluid_nb
Definition: FluidAgent.h:74
std::string fluidBufNB
Definition: FluidAgent.h:81
static const char * ifluid_b_vis
Definition: FluidAgent.C:502
double integrals[MAN_INTEG_SIZE]
Definition: Agent.h:162
void COM_resize_array(const char *wa_str, int pane_id=0, void **addr=NULL, int strd=-1, int cap=0)
Resize an attribute on a specific pane and return the address by setting addr.
Definition: roccom_c++.h:200
int comm_rank
Definition: Agent.h:130
std::string ifluid
Definition: FluidAgent.h:60
std::string fluidBufPRE
Definition: FluidAgent.h:85
int f_mdot_hdl
Definition: FluidAgent.h:90