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

#include <transfer_actions.h>

Inheritance diagram for HeatTransfer_FS:
Collaboration diagram for HeatTransfer_FS:

Public Member Functions

 HeatTransfer_FS (FluidAgent *ag, SolidAgent *sag, BurnAgent *bag, const std::string f_qc, const std::string f_qr, const std::string fb_qev, const std::string s_qs)
 
void init (double t)
 
void run (double t, double dt, double alpha)
 
- Public Member Functions inherited from InterMeshTransfer
 InterMeshTransfer (FluidAgent *fag, SolidAgent *sag, char *name=NULL)
 
- Public Member Functions inherited from Action
 Action (void *p=0, char *name=NULL)
 
 Action (int n, const char *at[], int *i=NULL, void *p=0, char *name=NULL)
 
 Action (int n, const std::string at[], int *i=NULL, void *p=0, char *name=NULL)
 
virtual ~Action ()
 
virtual void declare (Scheduler &)
 
virtual void finalize ()
 
virtual char * name ()
 
void set_name (const char *name)
 
virtual void print (FILE *f)
 
virtual void print_toposort (FILE *f)
 
virtual void schedule ()
 

Private Attributes

BurnAgentbagent
 
int f_qc_hdl
 
int f_qr_hdl
 
int b_qev_hdl
 
int s_qs_hdl
 
int s_qc_hdl
 
int s_qr_hdl
 
int f_qev_hdl
 
int s_qev_hdl
 
int RFC_interpolate
 
int RFC_transfer
 

Additional Inherited Members

- Protected Types inherited from Action
enum  { IN =1, OUT =2, INOUT =3 }
 
- Protected Member Functions inherited from InterMeshTransfer
void load_rocface (const RocmanControl_parameters *param)
 
- Protected Member Functions inherited from Action
int get_attribute_handle (int i)
 
int get_attribute_handle_const (int i)
 
int get_attribute_handle (const std::string str)
 
void set_attr (int n, const std::string at[], int *id=NULL)
 
void set_attr (int n, const char *at[], int *id=NULL)
 
void set_io (int n, const int *io)
 
void set_io (const char *io)
 
int get_io (int i)
 
- Protected Attributes inherited from InterMeshTransfer
FluidAgentfagent
 
SolidAgentsagent
 
- Protected Attributes inherited from Action
char * action_name
 
char ** attr
 
int * idx
 
int count
 
void * usr_ptr
 
std::vector< int > inout
 

Detailed Description

Definition at line 211 of file transfer_actions.h.

Constructor & Destructor Documentation

HeatTransfer_FS ( FluidAgent ag,
SolidAgent sag,
BurnAgent bag,
const std::string  f_qc,
const std::string  f_qr,
const std::string  fb_qev,
const std::string  s_qs 
)

Definition at line 1024 of file transfer_actions.C.

References InterMeshTransfer::fagent, FluidAgent::fluidBufNG, Agent::get_surface_window(), Action::IN, Action::OUT, Agent::register_clone_attribute(), InterMeshTransfer::sagent, Action::set_attr(), Action::set_io(), and SolidAgent::solidBuf.

1027  :
1028  InterMeshTransfer(fag, sag, (char *)"HeatTransfer_FS"), bagent(bag)
1029 {
1030  int io[] = {IN, IN, IN, OUT};
1031  set_io( 4, io);
1032 
1033  std::string atts[4];
1034  atts[0] = f_qc;
1035  atts[1] = f_qr;
1036  atts[2] = b_qev;
1037  atts[3] = s_qs;
1038  set_attr(4, atts);
1039 
1040  // temporary buffer for solid
1045 }
SolidAgent * sagent
FluidAgent * fagent
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)
Definition: Agent.C:328
std::string get_surface_window() const
Definition: Agent.h:217
std::string fluidBufNG
Definition: FluidAgent.h:78
std::string solidBuf
Definition: SolidAgent.h:68
void set_io(int n, const int *io)
Definition: Action.h:70
InterMeshTransfer(FluidAgent *fag, SolidAgent *sag, char *name=NULL)
void set_attr(int n, const std::string at[], int *id=NULL)
Definition: Action.C:66
BurnAgent * bagent

Here is the call graph for this function:

Member Function Documentation

void init ( double  t)
virtual

Reimplemented from Action.

Definition at line 1047 of file transfer_actions.C.

References Action::attr, b_qev_hdl, bagent, COM_assertion_msg, COM_get_array(), COM_get_attribute_handle(), COM_get_function_handle(), f_qc_hdl, f_qev_hdl, f_qr_hdl, InterMeshTransfer::fagent, FluidAgent::fluidBufNG, Action::get_attribute_handle(), Agent::get_comm_rank(), Agent::get_coupling(), Coupling::get_rocmancontrol_param(), Agent::get_surface_window(), InterMeshTransfer::load_rocface(), MAN_DEBUG, RFC_interpolate, RFC_transfer, s_qc_hdl, s_qev_hdl, s_qr_hdl, s_qs_hdl, InterMeshTransfer::sagent, and SolidAgent::solidBuf.

1047  {
1049  int with_qr = COM_get_attribute_handle( attr[1]) > 0;
1050  if (with_qr)
1052  else
1053  f_qr_hdl = -1;
1056 
1059  f_qev_hdl = get_attribute_handle( fagent->fluidBufNG+".qev"); // burn
1060  s_qev_hdl = get_attribute_handle( sagent->solidBuf+".qev"); // burn
1061 
1062  // TODO: set qev_flag to signal rocburn
1063  /*
1064  COM_new_attribute( attr.c_str(),'w',COM_INT,1,"");
1065  */
1066  int one = 1;
1067  int qev_flag_hdl = get_attribute_handle( bagent->get_surface_window()+".qev_flag"); // burn
1068  //COM_call_function( RocBlas::copy_scalar, &one, &qev_flag_hdl);
1069  int *vm =NULL;
1070  int strid, cap;
1071  COM_get_array((bagent->get_surface_window()+".qev_flag").c_str(), 0, &vm, &strid, &cap);
1072  COM_assertion_msg(vm!=NULL, "Error: qev_flag!");
1073  *vm = 1;
1074 
1076  RFC_transfer = COM_get_function_handle("RFC.least_squares_transfer");
1077  RFC_interpolate = COM_get_function_handle("RFC.interpolate");
1078 
1079  MAN_DEBUG(3, ("[%d] Rocstar: HeatTransfer_FS::init() with t:%e with_qr=%d.\n", fagent->get_comm_rank(), t, with_qr));
1080 }
SolidAgent * sagent
void load_rocface(const RocmanControl_parameters *param)
#define COM_assertion_msg(EX, msg)
void COM_get_array(const char *wa_str, int pane_id, void **addr, int *strd, int *cap)
Get the address for an attribute on a specific pane.
FluidAgent * fagent
int get_attribute_handle(int i)
Definition: Action.C:93
int COM_get_attribute_handle(const char *waname)
Definition: roccom_c++.h:412
std::string get_surface_window() const
Definition: Agent.h:217
char ** attr
Definition: Action.h:37
Coupling * get_coupling()
Definition: Agent.h:213
std::string fluidBufNG
Definition: FluidAgent.h:78
std::string solidBuf
Definition: SolidAgent.h:68
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
int get_comm_rank() const
Definition: Agent.h:224
const RocmanControl_parameters * get_rocmancontrol_param()
Definition: Coupling.h:184
BurnAgent * bagent
int COM_get_function_handle(const char *wfname)
Definition: roccom_c++.h:428

Here is the call graph for this function:

void run ( double  t,
double  dt,
double  alpha 
)
virtual

Reimplemented from Action.

Definition at line 1083 of file transfer_actions.C.

References RocBlas::add, b_qev_hdl, COM_assertion_msg, COM_call_function(), COM_copy_attribute(), f_qc_hdl, f_qev_hdl, f_qr_hdl, InterMeshTransfer::fagent, Agent::get_comm_rank(), MAN_DEBUG, RocBlas::neg, NO_SHEER, RFC_transfer, s_qc_hdl, s_qev_hdl, s_qr_hdl, s_qs_hdl, InterMeshTransfer::sagent, SolidAgent::size_ts, RocBlas::sub, and SolidAgent::traction_mode.

1083  {
1084  MAN_DEBUG(3, ("[%d] Rocstar: HeatTransfer_FS::run() with t:%e dt:%e.\n", fagent->get_comm_rank(), t, dt));
1085 
1086  int size_ts = sagent->size_ts;
1087  int traction_mode = sagent->traction_mode;
1088 
1089  if (traction_mode == NO_SHEER && size_ts == 3) {
1090  COM_assertion_msg(0, "Not implemented!");
1091  }
1092  else if ( traction_mode == NO_SHEER && size_ts == 1) {
1093  //debug_print(fagent->get_surface_window()+".qc", 2, 0);
1094  //debug_print(fagent->get_surface_window()+".qr", 2, 0);
1095  if (f_qr_hdl != -1) {
1099  }
1100  else
1102  //debug_print(sagent->solidBuf+".qs", 101, 0, bagent->get_communicator(), "s_qs");
1103  // add qsource
1104  if (b_qev_hdl == -1) {
1105  std::cerr << "Rocstar WARNING: No qev is obtained! " << std::endl;
1106  // only on burn surface
1108  }
1109  else {
1110  //debug_print(bagent->iburn_ng+".qev", 102, 0, bagent->get_communicator(), "b_qev");
1111  // copy qev from burn to fluid, transfer to solid
1114  // only on burn surface
1116  }
1117  }
1118  else if (size_ts == 1) {
1119  COM_assertion_msg(0, "If traction mode is with sheer, then solid tractions must be vectors!");
1120  }
1121  else {
1125  }
1126 }
SolidAgent * sagent
#define COM_assertion_msg(EX, msg)
FluidAgent * fagent
static int add
Definition: RocBlas.h:35
int size_ts
Definition: SolidAgent.h:86
static int neg
Definition: RocBlas.h:40
void COM_call_function(const int wf, int argc,...)
Definition: roccom_c.C:48
const int NO_SHEER
Definition: SolidAgent.h:31
void COM_copy_attribute(const char *wname, const char *attr, int wg=1, const char *ptnname=0, int val=0)
Copy an attribute onto another.
Definition: roccom_c++.h:244
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
int get_comm_rank() const
Definition: Agent.h:224
static int sub
Definition: RocBlas.h:36
int traction_mode
Definition: SolidAgent.h:87

Here is the call graph for this function:

Member Data Documentation

int b_qev_hdl
private

Definition at line 218 of file transfer_actions.h.

Referenced by init(), and run().

BurnAgent* bagent
private

Definition at line 217 of file transfer_actions.h.

Referenced by init().

int f_qc_hdl
private

Definition at line 218 of file transfer_actions.h.

Referenced by init(), and run().

int f_qev_hdl
private

Definition at line 219 of file transfer_actions.h.

Referenced by init(), and run().

int f_qr_hdl
private

Definition at line 218 of file transfer_actions.h.

Referenced by init(), and run().

int RFC_interpolate
private

Definition at line 220 of file transfer_actions.h.

Referenced by init().

int RFC_transfer
private

Definition at line 221 of file transfer_actions.h.

Referenced by init(), and run().

int s_qc_hdl
private

Definition at line 219 of file transfer_actions.h.

Referenced by init(), and run().

int s_qev_hdl
private

Definition at line 219 of file transfer_actions.h.

Referenced by init(), and run().

int s_qr_hdl
private

Definition at line 219 of file transfer_actions.h.

Referenced by init(), and run().

int s_qs_hdl
private

Definition at line 218 of file transfer_actions.h.

Referenced by init(), and run().


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