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

#include <transfer_actions.h>

Inheritance diagram for LoadTransferOnly_FSc_ALE:
Collaboration diagram for LoadTransferOnly_FSc_ALE:

Public Member Functions

 LoadTransferOnly_FSc_ALE (FluidAgent *fag, SolidAgent *sag, BurnAgent *bag, const std::string f_ts, const std::string s_ts, const std::string s_pf)
 
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

int traction_mode
 
int size_ts
 
BurnAgentbagent
 
int f_ts_hdl
 
int s_ts_hdl
 
int s_pf_hdl
 
int RFC_transfer
 
int SURF_compute_face_normals
 

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 79 of file transfer_actions.h.

Constructor & Destructor Documentation

LoadTransferOnly_FSc_ALE ( FluidAgent fag,
SolidAgent sag,
BurnAgent bag,
const std::string  f_ts,
const std::string  s_ts,
const std::string  s_pf 
)
explicit

Definition at line 362 of file transfer_actions.C.

References COM_DOUBLE, InterMeshTransfer::fagent, Agent::get_coupling(), Coupling::get_rocmancontrol_param(), Agent::get_surface_window(), FluidAgent::ifluid_i, Action::IN, NO_SHEER, Action::OUT, Agent::register_clone_attribute(), Agent::register_new_attribute(), InterMeshTransfer::sagent, Action::set_attr(), Action::set_io(), SolidAgent::solidBufBase, RocmanControl_parameters::traction_mode, and traction_mode.

367  :
368  InterMeshTransfer(fag, sag, (char *)"LoadTransferOnly_FSc_ALE"),
369  bagent(bag)
370 {
371  int io[] = {IN, OUT, OUT};
372  set_io( 3, io);
373 
374  std::string atts[3];
375  atts[0] = f_ts;
376  atts[1] = s_ts;
377  atts[2] = s_pf;
378  set_attr(3, atts);
379 
381 
382  // create_attribute
383  // for SolidAgent ??????????????????
384 // if (traction_mode == NO_SHEER && size_ts == 3) {
385  sagent->register_new_attribute( sagent->solidBufBase, ".pf", 'e', COM_DOUBLE, 1, "Pa");
386 // }
387 
388  // for FluidAgent
389  if (traction_mode == NO_SHEER) {
391  }
392  else
394 
395 // fagent->register_new_attribute( fagent->fluidBufB, ".mdot_tmp", 'e', COM_DOUBLE, 1, "kg/(m^2 s)");
396 }
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
void register_new_attribute(std::string target_window_, std::string attr_, char loc_, int type_, int ncomp_, const char *unit_)
Definition: Agent.C:322
std::string get_surface_window() const
Definition: Agent.h:217
std::string ifluid_i
Definition: FluidAgent.h:70
std::string solidBufBase
Definition: SolidAgent.h:67
Coupling * get_coupling()
Definition: Agent.h:213
void set_io(int n, const int *io)
Definition: Action.h:70
const int NO_SHEER
Definition: SolidAgent.h:31
InterMeshTransfer(FluidAgent *fag, SolidAgent *sag, char *name=NULL)
void set_attr(int n, const std::string at[], int *id=NULL)
Definition: Action.C:66
const RocmanControl_parameters * get_rocmancontrol_param()
Definition: Coupling.h:184

Here is the call graph for this function:

Member Function Documentation

void init ( double  t)
virtual

Reimplemented from Action.

Definition at line 399 of file transfer_actions.C.

References COM_assertion_msg, COM_get_attribute(), COM_get_function_handle(), f_ts_hdl, InterMeshTransfer::fagent, Action::get_attribute_handle(), Action::get_attribute_handle_const(), Agent::get_coupling(), Coupling::get_rocmancontrol_param(), InterMeshTransfer::load_rocface(), load_rocsurf(), MAN_DEBUG, MPI_COMM_WORLD, NO_SHEER, RFC_transfer, s_pf_hdl, s_ts_hdl, InterMeshTransfer::sagent, size_ts, SolidAgent::solidBufBase, SURF_compute_face_normals, and traction_mode.

399  {
400  // find out size_ts
401  int dummy;
402  std::string unit;
403  char loc;
404  COM_get_attribute( sagent->solidBufBase+".ts", &loc, &dummy, &size_ts, &unit);
405  if (size_ts == 1 && traction_mode != NO_SHEER) {
406  COM_assertion_msg(0, "If traction mode is with sheer, then solid tractions must be vectors!");
407  MPI_Abort(MPI_COMM_WORLD, -1);
408  }
409 
410  //f_pf_hdl = COM_get_attribute_handle_const( fagent->fluidBufNG+".pf");
413  if (traction_mode == NO_SHEER && size_ts == 3)
415  else
416  s_pf_hdl = -1;
417 
419  RFC_transfer = COM_get_function_handle("RFC.least_squares_transfer");
420 
421  load_rocsurf();
422  SURF_compute_face_normals = COM_get_function_handle( "SURF.compute_element_normals");
423 
424  MAN_DEBUG(3, ("LoadTransferOnly_FSc_ALE::init() called - traction_mode: %d size_ts: %d.\n", traction_mode, size_ts));
425 }
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
SolidAgent * sagent
void COM_get_attribute(const std::string wa_str, char *loc, int *type, int *ncomp, std::string *unit)
Definition: roccom_c++.h:269
void load_rocface(const RocmanControl_parameters *param)
#define COM_assertion_msg(EX, msg)
FluidAgent * fagent
int get_attribute_handle(int i)
Definition: Action.C:93
int get_attribute_handle_const(int i)
Definition: Action.C:110
std::string solidBufBase
Definition: SolidAgent.h:67
Coupling * get_coupling()
Definition: Agent.h:213
const int NO_SHEER
Definition: SolidAgent.h:31
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
static void load_rocsurf()
const RocmanControl_parameters * get_rocmancontrol_param()
Definition: Coupling.h:184
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 427 of file transfer_actions.C.

References COM_assertion_msg, COM_call_function(), f_ts_hdl, MAN_DEBUG, RocBlas::mul, RocBlas::neg, NO_SHEER, RFC_transfer, s_pf_hdl, s_ts_hdl, size_ts, SURF_compute_face_normals, and traction_mode.

427  {
428  MAN_DEBUG(3, ("Rocstar: LoadTransferOnly_FSc_ALE::run() with t:%e dt:%e.\n", t, dt));
429 
430  // part 2 (solid_agent.f90 INIT_INBUFF_SOLID())
431  if (traction_mode == NO_SHEER && size_ts == 3) {
436  }
437  else if ( traction_mode == NO_SHEER && size_ts == 1) {
439  }
440  else if (size_ts == 1) {
441  COM_assertion_msg(0, "If traction mode is with sheer, then solid tractions must be vectors!");
442  }
443  else {
445  }
446 }
#define COM_assertion_msg(EX, msg)
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
#define MAN_DEBUG(l, x)
Definition: rocman.h:98
static int mul
Definition: RocBlas.h:38

Here is the call graph for this function:

Member Data Documentation

BurnAgent* bagent
private

Definition at line 87 of file transfer_actions.h.

int f_ts_hdl
private

Definition at line 88 of file transfer_actions.h.

Referenced by init(), and run().

int RFC_transfer
private

Definition at line 89 of file transfer_actions.h.

Referenced by init(), and run().

int s_pf_hdl
private

Definition at line 88 of file transfer_actions.h.

Referenced by init(), and run().

int s_ts_hdl
private

Definition at line 88 of file transfer_actions.h.

Referenced by init(), and run().

int size_ts
private

Definition at line 86 of file transfer_actions.h.

Referenced by init(), and run().

int SURF_compute_face_normals
private

Definition at line 90 of file transfer_actions.h.

Referenced by init(), and run().

int traction_mode
private

Definition at line 85 of file transfer_actions.h.

Referenced by init(), LoadTransferOnly_FSc_ALE(), and run().


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