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

#include <SolidAgent.h>

Inheritance diagram for SolidAgent:
Collaboration diagram for SolidAgent:

Public Member Functions

 SolidAgent (Coupling *coup, std::string mod, std::string obj, MPI_Comm com, int withFluid=0)
 
virtual void input (double t)
 
virtual void load_module ()
 
virtual void unload_module ()
 
virtual void init_module (double t, double dt)
 
virtual void finalize ()
 
virtual void create_buffer_all ()
 
virtual void read_restart_data ()
 
virtual void output_restart_files (double t)
 
virtual int compute_integrals ()
 
virtual void output_visualization_files (double t)
 
- Public Member Functions inherited from Agent
 Agent (Coupling *cp, std::string mod, std::string obj, const char *agent_name, MPI_Comm com, bool wgm=false, bool skipio=false)
 
virtual ~Agent ()
 
void init_subscheduler (double t)
 
void callMethod (Scheduler_voidfn1_t fn, double t)
 
void schedule ()
 
double max_timestep (double t, double dt)
 
Actionget_main_action ()
 
void register_new_attribute (std::string target_window_, std::string attr_, char loc_, int type_, int ncomp_, const char *unit_)
 
void register_clone_attribute (int cond, std::string target_window_, std::string attr_, std::string parent_window_, std::string parent_attr_, int wg_=1, const char *ptnname_=0, int val_=0)
 
void register_use_attribute (std::string target_window_, std::string attr_, std::string parent_window_, std::string parent_attr_, int wg_=1, const char *ptnname_=0, int val_=0)
 
void create_registered_attributes (std::string tmpBuf)
 
void create_registered_window_attributes (std::string target_window)
 
void assign_attributes ()
 
void add_data ()
 
void add_icaction (Action *act)
 
void add_bcaction (Action *act, int l=1)
 
void add_bcinitaction (Action *act)
 
void add_gmaction (Action *act)
 
void init_callback (const char *surf_win, const char *vol_win, void *option=NULL)
 
void init_bcactions (double t)
 
void obtain_bc (double *a, int *l=NULL)
 
void init_gmactions (double t)
 
void obtain_gm (double *da)
 
void init_bcinitaction (double t)
 
void run_bcinitaction (double t, double dt)
 
Couplingget_coupling ()
 
void register_interpolate (InterpolateBase *ip)
 
std::string get_surface_window () const
 
std::string get_volume_window () const
 
MPI_Comm get_communicator () const
 
std::string get_rocmod_name () const
 
std::string get_modinstance_name () const
 
std::string get_agent_name () const
 
int get_comm_rank () const
 
double get_old_dt () const
 
virtual void init_convergence (int iPredCorr)
 
virtual int check_convergence (double tolerMass, double tolerTract, double tolerVelo)
 
double * get_integrals ()
 
void print (FILE *f)
 
void get_time_string (double t, std::string &s)
 

Public Attributes

std::string isolid_i
 
std::string isolid_all
 
std::string isolid_b
 
std::string isolid_nb
 
std::string isolid_ni
 
std::string solidBufBase
 
std::string solidBuf
 
std::string propBufAll
 
std::string propBuf
 
std::string isolid
 
std::string solid
 
std::string solidSurfIN
 
std::string solidVolIN
 
std::string solidBufBak
 
std::string solidVolBak
 
int with_fluid
 
int withALE
 
int rhos_mode
 
int size_ts
 
int traction_mode
 
int y_hdl
 

Additional Inherited Members

- Protected Types inherited from Agent
typedef vector< InterpolateBase * > InterpolateList
 
typedef vector< AttributeBase * > AttributeList
 
- Protected Member Functions inherited from Agent
Schedulerget_bcScheduler (unsigned int level)
 
void init_function_handles ()
 
void create_window (const char *window_name)
 
void split_surface_window (const std::string surfAll, const std::string surf_i, const std::string surf_nb, const std::string surf_b, const std::string surf_ni)
 
int read_by_control_file (double t, const std::string base, const std::string window)
 
void write_data_files (double t, const std::string base, const std::string attr, const char *ref=NULL)
 
void write_control_file (double t, const std::string base, const std::string window)
 
virtual void store_solutions (int converged)
 
int check_convergence_help (int vcur, int vpre, double tol, std::string str)
 
- Protected Attributes inherited from Agent
const std::string agent_name
 
MPI_Comm communicator
 
Couplingcoupling
 
PhysicsAction action
 
SchdulerList bcScheduler
 
UserScheduler bcInitScheduler
 
UserScheduler gmScheduler
 
UserScheduler icScheduler
 
int comm_rank
 
int init_handle
 
int update_handle
 
int pre_hdf_handle
 
int post_hdf_handle
 
int finalize_handle
 
int compute_integrals_handle
 
int ic_handle
 
int bc_handle
 
int gm_handle
 
bool withgm
 
int dobackup
 
string rocmod_name
 
string mod_instance
 
string inDir
 
string outDir
 
string suffix
 
double initial_time
 
double timestamp
 
double current_time
 
double current_deltatime
 
double old_dt
 
std::string surf_window
 
std::string vol_window
 
std::string tmp_window
 
void * option_data
 
InterpolateList interpolateList
 
AttributeList attributeList
 
int pc_hdls [2][3]
 
int pc_count
 
double integrals [MAN_INTEG_SIZE]
 
bool skipInputIO
 
- Static Protected Attributes inherited from Agent
static int read_by_control_handle =0
 
static int read_files_handle =0
 
static int obtain_attr_handle =0
 
static int write_attr_handle =0
 
static int write_ctrl_handle =0
 

Detailed Description

Definition at line 34 of file SolidAgent.h.

Constructor & Destructor Documentation

SolidAgent ( Coupling coup,
std::string  mod,
std::string  obj,
MPI_Comm  com,
int  withFluid = 0 
)

Definition at line 48 of file SolidAgent.C.

References agentCount, isolid, isolid_all, isolid_b, isolid_i, isolid_nb, isolid_ni, load_module(), propBuf, propBufAll, solid, solidBuf, solidBufBak, solidBufBase, solidSurfIN, solidVolBak, solidVolIN, Agent::tmp_window, and withALE.

48  :
49  Agent(coup, mod, obj, "Solid", com, false), with_fluid(withFluid)
50 {
51  load_module();
52 
53  withALE = 0;
54 
55  // TODO: need to personalize these variables
56  if (agentCount.length()==1) agentCount[0] ++;
57  isolid_i = "isolid"; isolid_i += agentCount; // "SolidBuf"
58  isolid_all = "isolid_all"; isolid_all += agentCount; //for registering attributes
59 
60  solidBufBase = "SolidBufBase"; solidBufBase += agentCount;
61  solidBuf = "SolidBuf"; solidBuf += agentCount; // for registering attributes
62  propBufAll = "SolidPropAll"; // for surface propagation (containing all panes)
64  propBuf = "SolidProp"; propBuf += agentCount;
65 
66  // Surface windows for Rocout
67  isolid_b = "isolid_b"; // buring
69  isolid_nb = "isolid_nb"; // non-buring
71  isolid_ni = "isolid_ni"; // noninteracting
73 
74  // Material names in files.
75  isolid = "isolid"; // for input
76  solid = "solid";
77 
78  // Rocin windows
79  solidSurfIN = "SolidSurfIN"; solidSurfIN += agentCount;
80  solidVolIN = "SolidVolIN"; solidVolIN += agentCount;
81 
82  solidBufBak = "SolidBufBak"; solidBufBak += agentCount;
83  solidVolBak = "SolidVolBak"; solidVolBak += agentCount;
84 
86 }
std::string solidVolBak
Definition: SolidAgent.h:81
T mod(const T &x, const T &m)
Return the modulo of a number.
Definition: CImg.h:4788
static std::string agentCount
Definition: SolidAgent.C:46
std::string solidSurfIN
Definition: SolidAgent.h:77
int withALE
Definition: SolidAgent.h:84
std::string isolid
Definition: SolidAgent.h:73
std::string propBuf
Definition: SolidAgent.h:70
std::string isolid_nb
Definition: SolidAgent.h:64
std::string isolid_ni
Definition: SolidAgent.h:65
std::string solidBufBase
Definition: SolidAgent.h:67
std::string isolid_i
Definition: SolidAgent.h:60
std::string solidBuf
Definition: SolidAgent.h:68
std::string isolid_all
Definition: SolidAgent.h:62
std::string tmp_window
Definition: Agent.h:149
std::string solid
Definition: SolidAgent.h:74
std::string solidVolIN
Definition: SolidAgent.h:78
std::string propBufAll
Definition: SolidAgent.h:69
std::string solidBufBak
Definition: SolidAgent.h:80
std::string isolid_b
Definition: SolidAgent.h:63
Agent(Coupling *cp, std::string mod, std::string obj, const char *agent_name, MPI_Comm com, bool wgm=false, bool skipio=false)
Definition: Agent.C:201
virtual void load_module()
Definition: SolidAgent.C:88
int with_fluid
Definition: SolidAgent.h:83

Here is the call graph for this function:

Member Function Documentation

int compute_integrals ( )
virtual

Reimplemented from Agent.

Definition at line 417 of file SolidAgent.C.

References COM_call_function(), Agent::compute_integrals_handle, Agent::integrals, and MAN_DEBUG.

418 {
419  if (compute_integrals_handle > 0) {
420  MAN_DEBUG(3, ("Rocstar: SolidAgent::compute_integrals.\n"));
422  }
423  return 1;
424 }
int compute_integrals_handle
Definition: Agent.h:133
void COM_call_function(const int wf, int argc,...)
Definition: roccom_c.C:48
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
double integrals[MAN_INTEG_SIZE]
Definition: Agent.h:162

Here is the call graph for this function:

void create_buffer_all ( )
virtual

Reimplemented from Agent.

Definition at line 162 of file SolidAgent.C.

References COM_assertion_msg, COM_clone_attribute(), COM_delete_window(), COM_DOUBLE, COM_get_attribute(), COM_get_attribute_handle(), COM_get_attribute_handle_const(), COM_INTEGER, COM_new_attribute(), COM_new_window(), COM_resize_array(), COM_use_attribute(), COM_window_init_done(), Agent::comm_rank, Agent::create_buffer_all(), Agent::create_registered_window_attributes(), Agent::get_coupling(), Coupling::get_max_ipc(), Coupling::get_rocmancontrol_param(), isolid_all, isolid_b, isolid_i, isolid_nb, isolid_ni, MAN_DEBUG, MPI_COMM_WORLD, NO_SHEER, Agent::pc_count, Agent::pc_hdls, propBuf, propBufAll, read_restart_data(), rhos_mode, size_ts, solidBuf, solidBufBak, solidBufBase, solidVolBak, Agent::split_surface_window(), Agent::surf_window, RocmanControl_parameters::traction_mode, traction_mode, Agent::vol_window, with_fluid, withALE, and y_hdl.

163 {
164 
165  int dummy = COM_get_attribute_handle_const( surf_window+".vbar_alp");
166  withALE = (dummy > 0);
167 
168  if (comm_rank == 0)
169  MAN_DEBUG(2, ("Rocstar: *** Solid with ALE is %d \n", withALE));
170 
173 
174  if (withALE) {
176  COM_use_attribute( propBufAll+".mesh", surf_window+".mesh");
177  COM_use_attribute( propBufAll+".vbar_alp", surf_window+".vbar_alp");
178  COM_clone_attribute( propBufAll+".vbar", surf_window+".vbar_alp");
179  COM_clone_attribute( propBufAll+".vbar_old", surf_window+".vbar_alp");
180  COM_clone_attribute( propBufAll+".vbar_grad", surf_window+".vbar_alp");
181  COM_new_attribute( propBufAll+".rb", 'e', COM_DOUBLE, 1, "m/s");
182  COM_new_attribute( propBufAll+".positions",'n',COM_DOUBLE,3,"m");
183  COM_new_attribute( propBufAll+".constrained",'n',COM_INTEGER,1,"");
184  COM_resize_array( propBufAll+".positions" );
185  COM_resize_array( propBufAll+".constrained");
186  COM_resize_array( propBufAll+".rb" );
189 
191  std::string bc_str = surf_window+".bcflag";
192  COM_use_attribute( propBuf+".mesh", surf_window+".mesh", 1, bc_str.c_str(), 1);
193  COM_use_attribute( propBuf+".pconn", propBufAll+".pconn");
194  if ( COM_get_attribute_handle( surf_window+".cnstr_type") >0) {
195  COM_use_attribute( propBuf, surf_window+".cnstr_type");
196  }
197  COM_use_attribute( propBuf+".vbar_alp", propBufAll+".vbar_alp");
198  COM_use_attribute( propBuf+".vbar", propBufAll+".vbar");
199  COM_use_attribute( propBuf+".vbar_old", propBufAll+".vbar_old");
200  COM_use_attribute( propBuf+".vbar_grad", propBufAll+".vbar_grad");
201  COM_use_attribute( propBuf+".rb", propBufAll+".rb");
204  }
205 
207  std::string bcflag = surf_window+".bcflag";
208  COM_use_attribute( solidBufBase+".mesh", surf_window+".mesh", 1, bcflag.c_str(), 0);
209  COM_use_attribute( solidBufBase+".mesh", surf_window+".mesh", 1, bcflag.c_str(), 1);
210  if (withALE) {
211  COM_new_attribute(solidBufBase+".areas", 'e', COM_DOUBLE, 1, "m^2");
212  COM_resize_array(solidBufBase+".areas");
213  COM_new_attribute(solidBufBase+".mdot", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
215  }
216  COM_clone_attribute( solidBufBase+".ts", surf_window+".ts_alp");
217  COM_clone_attribute( solidBufBase+".ts_old", surf_window+".ts_alp");
218  COM_clone_attribute( solidBufBase+".ts_grad", surf_window+".ts_alp");
221 
225  if (withALE)
227  if (with_fluid == 1) { // coupled
230  }
233 
235 
239 
240  // Create a window for output solid non-burning patch data
242  COM_use_attribute( isolid_nb+".mesh", surf_window+".mesh", 1, bcflag.c_str(), 0);
244 
245  if ( withALE) {
246  COM_use_attribute( isolid_nb+".pconn", propBufAll+".pconn");
248  COM_use_attribute( isolid_nb, propBufAll+".vbar_old");
250  }
251 
255 
256  // Create a window for output solid interface data
258  COM_use_attribute( isolid_b+".mesh", surf_window+".mesh", 1, bcflag.c_str(), 1);
260 
261  if ( withALE) {
262  COM_use_attribute( isolid_b+".pconn", propBufAll+".pconn");
264  COM_use_attribute( isolid_b, propBufAll+".vbar_old");
266  }
267 
271 
272  // Create a window for non-solid/fluid interface
274  COM_use_attribute( isolid_ni+".mesh", surf_window+".mesh", 1, bcflag.c_str(), 2);
276  if ( withALE) {
277  COM_use_attribute( isolid_ni+".pconn", propBufAll+".pconn");
279  COM_use_attribute( isolid_ni, propBufAll+".vbar_old");
281  }
283 
284  // setup for pc iterations
285  int maxPredCorr = get_coupling()->get_max_ipc();
286  if ( maxPredCorr>1) {
287  // Create window for backing surface data
289  COM_use_attribute( solidBufBak+".mesh", solidBuf+".mesh");
293 
294  // Create window for backing up volume data
296  COM_use_attribute( solidVolBak+".mesh", vol_window+".mesh");
300 
301  // Initlaize the attribute handles to be stored/restored
304 
307  pc_hdls[0][2] = COM_get_attribute_handle( solidBuf+".nc");
309  pc_count = 3;
310  }
311 
312  // update
314 
315  // setup variables
317 
318  std::string unit;
319  char loc;
320  COM_get_attribute( isolid_all+".rhos", &loc, &dummy, &dummy, &unit);
321  if (loc=='w' || loc=='p')
322  rhos_mode = 1;
323  else {
324  if (loc != 'n' && loc != 'e') {
325  printf("Rocstar: Error: Unknown type of location of rohs: %c\n", loc);
326  exit(1);
327  }
328  rhos_mode = 2;
329  }
330 
331  COM_get_attribute( solidBufBase+".ts", &loc, &dummy, &size_ts, &unit);
332  if (size_ts == 1 && traction_mode != NO_SHEER) {
333  COM_assertion_msg(0, "If traction mode is with sheer, then solid tractions must be vectors!");
334  MPI_Abort(MPI_COMM_WORLD, -1);
335  }
336 
337  // for compute_distances
339 
340  if (!get_coupling()->initial_start()) read_restart_data();
341 }
int get_max_ipc() const
Definition: Coupling.h:161
std::string solidVolBak
Definition: SolidAgent.h:81
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
void COM_delete_window(const char *wname)
Definition: roccom_c++.h:94
void COM_get_attribute(const std::string wa_str, char *loc, int *type, int *ncomp, std::string *unit)
Definition: roccom_c++.h:269
#define COM_assertion_msg(EX, msg)
int withALE
Definition: SolidAgent.h:84
int pc_hdls[2][3]
Definition: Agent.h:158
int COM_get_attribute_handle(const char *waname)
Definition: roccom_c++.h:412
std::string propBuf
Definition: SolidAgent.h:70
std::string isolid_nb
Definition: SolidAgent.h:64
virtual void read_restart_data()
Definition: SolidAgent.C:343
std::string isolid_ni
Definition: SolidAgent.h:65
std::string solidBufBase
Definition: SolidAgent.h:67
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
std::string isolid_i
Definition: SolidAgent.h:60
Coupling * get_coupling()
Definition: Agent.h:213
std::string solidBuf
Definition: SolidAgent.h:68
void split_surface_window(const std::string surfAll, const std::string surf_i, const std::string surf_nb, const std::string surf_b, const std::string surf_ni)
Definition: Agent.C:690
int size_ts
Definition: SolidAgent.h:86
virtual void create_buffer_all()
Definition: Agent.C:361
std::string isolid_all
Definition: SolidAgent.h:62
std::string surf_window
Definition: Agent.h:148
void COM_window_init_done(const char *w_str, int pane_changed=true)
Definition: roccom_c++.h:102
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
std::string propBufAll
Definition: SolidAgent.h:69
void COM_new_window(const char *wname, MPI_Comm c=MPI_COMM_NULL)
Definition: roccom_c++.h:86
const int NO_SHEER
Definition: SolidAgent.h:31
int COM_get_attribute_handle_const(const char *waname)
Definition: roccom_c++.h:420
std::string solidBufBak
Definition: SolidAgent.h:80
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
const RocmanControl_parameters * get_rocmancontrol_param()
Definition: Coupling.h:184
int pc_count
Definition: Agent.h:160
void create_registered_window_attributes(std::string target_window)
Definition: Agent.C:350
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
std::string isolid_b
Definition: SolidAgent.h:63
int with_fluid
Definition: SolidAgent.h:83
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
int traction_mode
Definition: SolidAgent.h:87
int rhos_mode
Definition: SolidAgent.h:85

Here is the call graph for this function:

void finalize ( )
virtual

Reimplemented from Agent.

Definition at line 394 of file SolidAgent.C.

References COM_delete_window(), Agent::finalize(), Agent::get_coupling(), Coupling::get_max_ipc(), isolid_all, isolid_b, isolid_i, isolid_nb, isolid_ni, propBuf, propBufAll, solidBuf, solidBufBak, solidBufBase, solidVolBak, and withALE.

395 {
396  int maxPredCorr = get_coupling()->get_max_ipc();
397  if ( maxPredCorr>1) {
400  }
401 
409  if ( withALE) {
412  }
413 
414  Agent::finalize();
415 }
int get_max_ipc() const
Definition: Coupling.h:161
std::string solidVolBak
Definition: SolidAgent.h:81
void COM_delete_window(const char *wname)
Definition: roccom_c++.h:94
int withALE
Definition: SolidAgent.h:84
std::string propBuf
Definition: SolidAgent.h:70
std::string isolid_nb
Definition: SolidAgent.h:64
std::string isolid_ni
Definition: SolidAgent.h:65
std::string solidBufBase
Definition: SolidAgent.h:67
std::string isolid_i
Definition: SolidAgent.h:60
Coupling * get_coupling()
Definition: Agent.h:213
std::string solidBuf
Definition: SolidAgent.h:68
std::string isolid_all
Definition: SolidAgent.h:62
std::string propBufAll
Definition: SolidAgent.h:69
virtual void finalize()
Definition: Agent.C:466
std::string solidBufBak
Definition: SolidAgent.h:80
std::string isolid_b
Definition: SolidAgent.h:63

Here is the call graph for this function:

void init_module ( double  t,
double  dt 
)
virtual

Reimplemented from Agent.

Definition at line 141 of file SolidAgent.C.

References COM_call_function(), COM_delete_window(), Agent::communicator, Agent::ic_handle, Agent::init_handle, Agent::init_module(), MAN_DEBUG, Agent::obtain_attr_handle, solidSurfIN, and solidVolIN.

141  {
142  MAN_DEBUG(3, ("Rocstar: SolidAgent::init_module t=%e dt=%e.\n", t, dt));
143 
144  Agent::init_module(t, dt);
145 
146  // Call initialization routine of physics module
147  // rocman.f90:INITIALIZE()
149  solidSurfIN.c_str(), solidVolIN.c_str(),
151 
152  // Delete input buffer windows
155 
156  // Split surface window for output
157  // ifluid is fluidBuf in INITIALIZE_FLUID() ???
158  //split_surface_window( isolid_all, isolid_i, isolid_nb, isolid_b, isolid_ni);
159 }
int ic_handle
Definition: Agent.h:136
virtual void init_module(double t, double dt)
Definition: Agent.C:416
void COM_delete_window(const char *wname)
Definition: roccom_c++.h:94
std::string solidSurfIN
Definition: SolidAgent.h:77
int init_handle
Definition: Agent.h:131
std::string solidVolIN
Definition: SolidAgent.h:78
MPI_Comm communicator
Definition: Agent.h:114
void COM_call_function(const int wf, int argc,...)
Definition: roccom_c.C:48
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
static int obtain_attr_handle
Definition: Agent.h:125

Here is the call graph for this function:

void input ( double  t)
virtual

Implements Agent.

Definition at line 136 of file SolidAgent.C.

References isolid, Agent::read_by_control_file(), solid, solidSurfIN, and solidVolIN.

136  {
139 }
std::string solidSurfIN
Definition: SolidAgent.h:77
std::string isolid
Definition: SolidAgent.h:73
int read_by_control_file(double t, const std::string base, const std::string window)
Definition: Agent.C:588
std::string solid
Definition: SolidAgent.h:74
std::string solidVolIN
Definition: SolidAgent.h:78

Here is the call graph for this function:

void load_module ( )
virtual

Reimplemented from Agent.

Definition at line 88 of file SolidAgent.C.

References COM_assertion_msg, COM_F_FUNC2, COM_load_module(), Agent::comm_rank, Agent::init_function_handles(), MAN_DEBUG, Agent::mod_instance, rocfrac_load_module(), and Agent::rocmod_name.

Referenced by SolidAgent().

89 {
90  MAN_DEBUG(3, ("[%d] Rocstar: SolidAgent::load_module %s %s.\n", comm_rank, rocmod_name.c_str(), mod_instance.c_str()));
91 
92 #ifdef STATIC_LINK
93  if (rocmod_name == "Rocsolid")
94  COM_F_FUNC2( rocsolid_load_module, ROCSOLID_LOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
95 #ifdef ROCFRAC3
96  else if (rocmod_name == "Rocfrac3")
97  COM_F_FUNC2( rocfrac3_load_module, ROCFRAC3_LOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
98 #else
99  else if (rocmod_name == "Rocfrac")
100  COM_F_FUNC2( rocfrac_load_module, ROCFRAC_LOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
101 #endif
102  else
103  COM_assertion_msg(0, "Unknown SolidAgent mod!");
104 #else
105  // dynamic loading
106  COM_assertion_msg(rocmod_name == "Rocsolid" || rocmod_name == "Rocfrac"
107  || rocmod_name == "Rocfrac3",
108  (std::string("Unknown SolidAgent module:")+rocmod_name).c_str());
109  COM_load_module(rocmod_name.c_str(), mod_instance.c_str());
110 #endif
111 
112  init_function_handles(); // defined in Agent
113 }
string rocmod_name
Definition: Agent.h:141
#define COM_assertion_msg(EX, msg)
#define COM_F_FUNC2(lowcase, uppercase)
Definition: roccom_basic.h:87
void COM_load_module(const char *libname, const char *winname)
Definition: roccom_c++.h:75
void init_function_handles()
Definition: Agent.C:234
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
string mod_instance
Definition: Agent.h:141
subroutine rocfrac_load_module(module_name)
int comm_rank
Definition: Agent.h:130

Here is the call graph for this function:

Here is the caller graph for this function:

void output_restart_files ( double  t)
virtual

Implements Agent.

Definition at line 362 of file SolidAgent.C.

References isolid_all, isolid_b, isolid_nb, isolid_ni, solid, Agent::surf_window, Agent::vol_window, Agent::write_control_file(), and Agent::write_data_files().

Referenced by SurfDiver::run().

362  {
363  static const std::string isolid_prefix = "isolid_all";
364 
365  // Write out surface sub-windows
366 #if 1
367  write_data_files( t, isolid_b, isolid_b+".all");
368  write_data_files( t, isolid_nb, isolid_nb+".all");
369  write_data_files( t, isolid_ni, isolid_ni+".all");
370 #else
371  write_data_files( t, isolid_prefix, isolid_all+".all");
372 #endif
373  write_control_file( t, "isolid*", surf_window.c_str());
374 
375  // Write out volume window
376  write_data_files( t, solid, (vol_window+".all").c_str());
377  write_control_file( t, solid, vol_window.c_str());
378 }
void write_data_files(double t, const std::string base, const std::string attr, const char *ref=NULL)
Definition: Agent.C:631
std::string isolid_nb
Definition: SolidAgent.h:64
std::string isolid_ni
Definition: SolidAgent.h:65
std::string vol_window
Definition: Agent.h:148
std::string isolid_all
Definition: SolidAgent.h:62
std::string surf_window
Definition: Agent.h:148
std::string solid
Definition: SolidAgent.h:74
void write_control_file(double t, const std::string base, const std::string window)
Definition: Agent.C:657
std::string isolid_b
Definition: SolidAgent.h:63

Here is the call graph for this function:

Here is the caller graph for this function:

void output_visualization_files ( double  t)
virtual

Implements Agent.

Definition at line 390 of file SolidAgent.C.

390  {
391  // TODO: Define visualization sub-windows
392 }
void read_restart_data ( )
virtual

Reimplemented from Agent.

Definition at line 343 of file SolidAgent.C.

References COM_call_function(), COM_clone_attribute(), COM_get_attribute_handle(), COM_get_attribute_handle_const(), Agent::obtain_attr_handle, propBufAll, solidBufBase, solidSurfIN, and withALE.

Referenced by create_buffer_all().

344 {
345  int atts_hdl = COM_get_attribute_handle_const( solidSurfIN+".atts");
346  int buf_hdl = COM_get_attribute_handle( solidBufBase+".atts");
347  COM_call_function( obtain_attr_handle, &atts_hdl, &buf_hdl);
348 
349  if ( withALE) {
350  // Obtain data for surface propagation if ALE is enabled
351  int propBufAll_hdl = COM_get_attribute_handle( propBufAll+".atts");
352  COM_call_function( obtain_attr_handle, &atts_hdl, &propBufAll_hdl);
353 
354  // Obtain pconn for surface propagation
355  int pconn_hdl_const = COM_get_attribute_handle_const( solidSurfIN+".pconn");
356  int pconn_hdl = COM_get_attribute_handle( solidSurfIN+".pconn");
357  COM_call_function( obtain_attr_handle, &pconn_hdl_const, &pconn_hdl);
358  COM_clone_attribute( propBufAll+".pconn", solidSurfIN+".pconn");
359  }
360 }
std::string solidSurfIN
Definition: SolidAgent.h:77
int withALE
Definition: SolidAgent.h:84
int COM_get_attribute_handle(const char *waname)
Definition: roccom_c++.h:412
std::string solidBufBase
Definition: SolidAgent.h:67
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
std::string propBufAll
Definition: SolidAgent.h:69
void COM_call_function(const int wf, int argc,...)
Definition: roccom_c.C:48
int COM_get_attribute_handle_const(const char *waname)
Definition: roccom_c++.h:420
static int obtain_attr_handle
Definition: Agent.h:125

Here is the call graph for this function:

Here is the caller graph for this function:

void unload_module ( )
virtual

Reimplemented from Agent.

Definition at line 115 of file SolidAgent.C.

References COM_close_module(), COM_F_FUNC2, COM_unload_module(), Agent::comm_rank, Agent::get_coupling(), Coupling::in_restart(), MAN_DEBUG, Agent::mod_instance, rocfrac_unload_module(), and Agent::rocmod_name.

116 {
117  MAN_DEBUG(3, ("[%d] Rocstar: SolidAgent::unload_module %s.\n", comm_rank, rocmod_name.c_str()));
118 #ifdef STATIC_LINK
119  if (rocmod_name == "Rocsolid")
120  COM_F_FUNC2( rocsolid_unload_module, ROCSOLID_UNLOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
121 #ifdef ROCFRAC3
122  else if (rocmod_name == "Rocfrac3")
123  COM_F_FUNC2( rocfrac3_unload_module, ROCFRAC3_UNLOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
124 #else
125  else if (rocmod_name == "Rocfrac")
126  COM_F_FUNC2( rocfrac_unload_module, ROCFRAC_UNLOAD_MODULE)( mod_instance.c_str(), mod_instance.length());
127 #endif
128 #else
129  if (get_coupling()->in_restart())
130  COM_close_module(rocmod_name.c_str(), mod_instance.c_str());
131  else
132  COM_unload_module(rocmod_name.c_str(), mod_instance.c_str());
133 #endif
134 }
string rocmod_name
Definition: Agent.h:141
int in_restart() const
Definition: Coupling.h:164
#define COM_F_FUNC2(lowcase, uppercase)
Definition: roccom_basic.h:87
Coupling * get_coupling()
Definition: Agent.h:213
void COM_close_module(const char *libname, const char *winname=NULL)
Definition: roccom_c++.h:81
void COM_unload_module(const char *libname, const char *winname=NULL)
Definition: roccom_c++.h:78
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
subroutine rocfrac_unload_module(module_name)
string mod_instance
Definition: Agent.h:141
int comm_rank
Definition: Agent.h:130

Here is the call graph for this function:

Member Data Documentation

std::string isolid

Definition at line 73 of file SolidAgent.h.

Referenced by input(), and SolidAgent().

std::string isolid_all

Definition at line 62 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), output_restart_files(), and SolidAgent().

std::string isolid_b

Definition at line 63 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), output_restart_files(), and SolidAgent().

std::string isolid_i

Definition at line 60 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), and SolidAgent().

std::string isolid_nb

Definition at line 64 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), output_restart_files(), and SolidAgent().

std::string isolid_ni

Definition at line 65 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), output_restart_files(), and SolidAgent().

int rhos_mode

Definition at line 85 of file SolidAgent.h.

Referenced by create_buffer_all(), and TransferSolidDensity::run().

int size_ts

Definition at line 86 of file SolidAgent.h.

Referenced by create_buffer_all(), and HeatTransfer_FS::run().

std::string solid

Definition at line 74 of file SolidAgent.h.

Referenced by input(), output_restart_files(), and SolidAgent().

std::string solidBufBak

Definition at line 80 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), and SolidAgent().

std::string solidSurfIN

Definition at line 77 of file SolidAgent.h.

Referenced by init_module(), input(), read_restart_data(), and SolidAgent().

std::string solidVolBak

Definition at line 81 of file SolidAgent.h.

Referenced by create_buffer_all(), finalize(), and SolidAgent().

std::string solidVolIN

Definition at line 78 of file SolidAgent.h.

Referenced by init_module(), input(), and SolidAgent().

int traction_mode

Definition at line 87 of file SolidAgent.h.

Referenced by create_buffer_all(), and HeatTransfer_FS::run().

int with_fluid

Definition at line 83 of file SolidAgent.h.

Referenced by create_buffer_all().

int y_hdl

Definition at line 89 of file SolidAgent.h.

Referenced by create_buffer_all(), and FullyCoupling::update_distances().


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