PPL Logo

MBlockChunk Class Reference

#include <mblock_impl.h>

Inheritance diagram for MBlockChunk:

Inheritance graph
[legend]
Collaboration diagram for MBlockChunk:

Collaboration graph
[legend]

Public Member Functions

 MBlockChunk (const CkArrayID &threads)
 MBlockChunk (CkMigrateMessage *msg)
 ~MBlockChunk ()
void read (const char *prefix, int nDim)
void ckJustMigrated (void)
void recv (MBlockDataMsg *)
void reductionResult (CkReductionMsg *)
int add_field (field_t *f)
void start_update (int fid, const extrudeMethod &m, void *ingrid, void *outgrid)
int test_update (void)
int wait_update (void)
void reduce_field (int fid, const void *nodes, void *outbuf, int op)
void reduce (int fid, const void *inbuf, void *outbuf, int op)
void print (void)
int register_bc (const int bcnum, const MBLK_BcFn bcfn, const extrudeMethod &m, bool isFortran)
void apply_single_bc (patch *p, void *p1, void *p2)
int apply_bc (const int bcnum, void *p1, void *p2)
int apply_bc_all (void *p1, void *p2)
void pup (PUP::er &p)

Static Public Member Functions

static void copy (const blockLoc &src, int *dest, int shift=0)

Data Fields

blockb

Private Member Functions

void commonInit (void)
void migInit (void)
void send (int fid, const extrudeMethod &m, const void *grid)
void update_field (MBlockDataMsg *m)

Private Attributes

int nfields
field_tfields [MBLK_MAXDT]
int nudata
void * userdata [MBLK_MAXUDATA]
MBLK_PupFn pup_ud [MBLK_MAXUDATA]
CProxy_TCharm threads
TCharmthread
bc_t bcs [MBLK_MAXBC]
CmmTable messages
int seqnum
update_t update
int nRecvPatches
void * reduce_output

Data Structures

class  bc_t
class  update_t

Detailed Description

Definition at line 97 of file mblock_impl.h.


Constructor & Destructor Documentation

MBlockChunk::MBlockChunk ( const CkArrayID threads  ) 

Definition at line 191 of file mblock.C.

References CmmNew(), commonInit(), messages, migInit(), MBlockChunk::update_t::nRecd, TCharm::semaPut(), thread, threads, update, and MBlockChunk::update_t::wait_seqnum.

Here is the call graph for this function:

MBlockChunk::MBlockChunk ( CkMigrateMessage msg  ) 

Definition at line 205 of file mblock.C.

References commonInit(), and messages.

Here is the call graph for this function:

MBlockChunk::~MBlockChunk (  ) 

Definition at line 227 of file mblock.C.

References b, CmmFree(), and messages.

Here is the call graph for this function:


Member Function Documentation

void MBlockChunk::commonInit ( void   )  [private]

Definition at line 181 of file mblock.C.

References b, bcs, nfields, and seqnum.

Referenced by MBlockChunk().

Here is the caller graph for this function:

void MBlockChunk::migInit ( void   )  [private]

Definition at line 214 of file mblock.C.

References TCharm::getThread(), thread, and threads.

Referenced by ckJustMigrated(), and MBlockChunk().

Here is the call graph for this function:

Here is the caller graph for this function:

void MBlockChunk::read ( const char *  prefix,
int  nDim 
)

Definition at line 234 of file mblock.C.

References b, block::getPatch(), block::getPatches(), patch::internal, n, nRecvPatches, p, and patch::type.

Referenced by MBLK_Read().

Here is the call graph for this function:

Here is the caller graph for this function:

void MBlockChunk::ckJustMigrated ( void   ) 

Definition at line 221 of file mblock.C.

References ArrayElement::ckJustMigrated(), and migInit().

Here is the call graph for this function:

void MBlockChunk::recv ( MBlockDataMsg dm  ) 

void MBlockChunk::reductionResult ( CkReductionMsg m  ) 

Definition at line 457 of file mblock.C.

References CkReductionMsg::getData(), CkReductionMsg::getSize(), reduce_output, TCharm::resume(), and thread.

Here is the call graph for this function:

int MBlockChunk::add_field ( field_t f  )  [inline]

Definition at line 149 of file mblock_impl.h.

References fields, and nfields.

Referenced by MBLK_Create_field().

Here is the caller graph for this function:

void MBlockChunk::start_update ( int  fid,
const extrudeMethod m,
void *  ingrid,
void *  outgrid 
)

Definition at line 354 of file mblock.C.

References MBlockChunk::update_t::m, messages, MBlockChunk::update_t::nRecd, nRecvPatches, MBlockChunk::update_t::ogrid, send(), seqnum, update, update_field(), and MBlockChunk::update_t::wait_seqnum.

Referenced by MBLK_Iupdate_field().

Here is the call graph for this function:

Here is the caller graph for this function:

int MBlockChunk::test_update ( void   ) 

Definition at line 381 of file mblock.C.

References update, and MBlockChunk::update_t::wait_seqnum.

Referenced by MBLK_Test_update().

Here is the caller graph for this function:

int MBlockChunk::wait_update ( void   ) 

Definition at line 387 of file mblock.C.

References nRecvPatches, seqnum, TCharm::suspend(), thread, update, and MBlockChunk::update_t::wait_seqnum.

Referenced by MBLK_Wait_update().

Here is the call graph for this function:

Here is the caller graph for this function:

void MBlockChunk::reduce_field ( int  fid,
const void *  nodes,
void *  outbuf,
int  op 
)

Definition at line 398 of file mblock.C.

References blockDim::c_index(), combine(), PUP::d, field_t::dim, DType::distance, field_t::dt, fields, DType::init_offset, MBLK_Get_blocksize(), reduce(), src, and DType::vec_len.

Referenced by MBLK_Reduce_field().

Here is the call graph for this function:

Here is the caller graph for this function:

void MBlockChunk::reduce ( int  fid,
const void *  inbuf,
void *  outbuf,
int  op 
)

void MBlockChunk::print ( void   ) 

Definition at line 802 of file mblock.C.

Referenced by MBLK_Print_block().

Here is the caller graph for this function:

int MBlockChunk::register_bc ( const int  bcnum,
const MBLK_BcFn  bcfn,
const extrudeMethod m,
bool  isFortran 
) [inline]

Definition at line 163 of file mblock_impl.h.

References bcs, MBlockChunk::bc_t::fn, MBlockChunk::bc_t::isFortran, and MBlockChunk::bc_t::m.

Referenced by FTN_NAME(), and MBLK_Register_bc().

Here is the caller graph for this function:

void MBlockChunk::apply_single_bc ( patch p,
void *  p1,
void *  p2 
) [inline]

Definition at line 175 of file mblock_impl.h.

References TCharm::activateThread(), bcs, TCharm::deactivateThread(), blockSpan::end, MBlockChunk::bc_t::fn, patch::getExtents(), blockSpan::getInt3(), PUP::m, PUP::s, and blockSpan::start.

Referenced by apply_bc(), and apply_bc_all().

Here is the call graph for this function:

Here is the caller graph for this function:

int MBlockChunk::apply_bc ( const int  bcnum,
void *  p1,
void *  p2 
) [inline]

Definition at line 189 of file mblock_impl.h.

References apply_single_bc(), b, bcs, patch::ext, block::getPatch(), block::getPatches(), n, p, and patch::type.

Referenced by MBLK_Apply_bc().

Here is the call graph for this function:

Here is the caller graph for this function:

int MBlockChunk::apply_bc_all ( void *  p1,
void *  p2 
) [inline]

Definition at line 204 of file mblock_impl.h.

References apply_single_bc(), b, patch::ext, block::getPatch(), block::getPatches(), n, p, and patch::type.

Referenced by MBLK_Apply_bc_all().

Here is the call graph for this function:

Here is the caller graph for this function:

static void MBlockChunk::copy ( const blockLoc src,
int dest,
int  shift = 0 
) [inline, static]

Definition at line 216 of file mblock_impl.h.

void MBlockChunk::pup ( PUP::er p  ) 

void MBlockChunk::send ( int  fid,
const extrudeMethod m,
const void *  grid 
) [private]

void MBlockChunk::update_field ( MBlockDataMsg m  )  [private]


Field Documentation

Definition at line 100 of file mblock_impl.h.

Referenced by add_field(), commonInit(), and pup().

field_t* MBlockChunk::fields[MBLK_MAXDT] [private]

Definition at line 101 of file mblock_impl.h.

Referenced by add_field(), pup(), reduce(), reduce_field(), send(), and update_field().

Definition at line 103 of file mblock_impl.h.

void* MBlockChunk::userdata[MBLK_MAXUDATA] [private]

Definition at line 104 of file mblock_impl.h.

MBLK_PupFn MBlockChunk::pup_ud[MBLK_MAXUDATA] [private]

Definition at line 105 of file mblock_impl.h.

CProxy_TCharm MBlockChunk::threads [private]

Definition at line 107 of file mblock_impl.h.

Referenced by MBlockChunk(), migInit(), and pup().

Definition at line 108 of file mblock_impl.h.

Referenced by MBlockChunk(), migInit(), recv(), reduce(), reductionResult(), and wait_update().

bc_t MBlockChunk::bcs[MBLK_MAXBC] [private]

Definition at line 116 of file mblock_impl.h.

Referenced by apply_bc(), apply_single_bc(), commonInit(), pup(), and register_bc().

Definition at line 118 of file mblock_impl.h.

Referenced by MBlockChunk(), pup(), recv(), start_update(), and ~MBlockChunk().

Definition at line 119 of file mblock_impl.h.

Referenced by commonInit(), pup(), recv(), send(), start_update(), and wait_update().

Definition at line 127 of file mblock_impl.h.

Referenced by MBlockChunk(), pup(), recv(), start_update(), test_update(), update_field(), and wait_update().

Definition at line 128 of file mblock_impl.h.

Referenced by pup(), read(), recv(), start_update(), and wait_update().

void* MBlockChunk::reduce_output [private]

Definition at line 130 of file mblock_impl.h.

Referenced by reduce(), and reductionResult().


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

Generated on Mon Sep 21 08:27:08 2020 for Charm++ by  doxygen 1.5.5