DOUG 0.2
Data Types | Functions/Subroutines | Variables

ElemMtxs_base Module Reference

Base types for element matrices and matrix distribution. More...

Data Types

type  ElemMtxsChunk
 ElemMtxsChunk type A helper structure used for distributing matrices. More...
type  ElemMtxsPacket
 ElemMtxsPacket type A structure for tracking element matrix packets being sent. More...

Functions/Subroutines

subroutine ElemMtxsChunk_Init (chunk, nell, Msh)
 Initialization.
subroutine ElemMtxsChunk_Destroy (chunk)
 Destructor.
subroutine ElemMtxsChunk_recv (chunk, Msh, p)
 Wait for chunk from other processor When p is not specified, a chunk from any processor is accepted.
subroutine ElemMtxsChunk_fillInDense (D, chunk, M)
 Fill in dense matrix out of element matrices.
subroutine ElemMtxsChunk_print (chunk)
 Print out element matrix chunk.
subroutine ElemMtxsPacket_Init (packet, Msh, nelems)
 Initialize packet.
subroutine ElemMtxsPacket_Destroy (packet)
 Destructor.
subroutine ElemMtxsPacket_send (packet, Msh, p)
 Send packet to processor p.
logical ElemMtxsPacket_sendInProgress (packet)
 Check if packet sending is still in progress.
subroutine ElemMtxsPacket_wait (packet)
 Wait for packet send request to finish.

Variables

integer(kind=1), parameter D_ELEM_INNER = 0
 Element types: element is considered 'interface' element when some of its freedoms are shared with elements from other partitions.
integer(kind=1), parameter D_ELEM_INTERF = 1
integer, parameter D_ELEMMTXS_IN_PACKET = 1024
 Packet size - element matrices are distributed with this granularity.

Detailed Description

Base types for element matrices and matrix distribution.


Function/Subroutine Documentation

subroutine ElemMtxs_base::ElemMtxsChunk_Destroy ( type(ElemMtxsChunk),intent(inout)  chunk)
subroutine ElemMtxs_base::ElemMtxsChunk_fillInDense ( float(kind=rk),dimension(:,:),intent(inout)  D,
type(ElemMtxsChunk),intent(in)  chunk,
type(Mesh),intent(in)  M 
)

Fill in dense matrix out of element matrices.

Parameters:
Ddense matrix
chunkelement matrices
Mmesh associated with element matrices

Definition at line 162 of file ElemMtxs_base.F90.

subroutine ElemMtxs_base::ElemMtxsChunk_Init ( type(ElemMtxsChunk),intent(inout)  chunk,
integer,intent(in)  nell,
type(Mesh),intent(in)  Msh 
)

Initialization.

Parameters:
chunkchunk to initialize
nellnumber of elements to allocate in chunk
Mshmesh corresponding to elements

Definition at line 97 of file ElemMtxs_base.F90.

Referenced by ElemMtxs_distribute::ElemMtxs_recvAndAssemble(), ElemMtxs_distribute::ElemMtxsIntf_distAndAssemble(), and ElemMtxsPacket_Init().

subroutine ElemMtxs_base::ElemMtxsChunk_print ( type(ElemMtxsChunk),intent(in)  chunk)

Print out element matrix chunk.

Definition at line 190 of file ElemMtxs_base.F90.

References globals::stream.

subroutine ElemMtxs_base::ElemMtxsChunk_recv ( type(ElemMtxsChunk),intent(inout)  chunk,
type(Mesh),intent(in)  Msh,
integer,intent(in),optional  p 
)

Wait for chunk from other processor When p is not specified, a chunk from any processor is accepted.

Parameters:
Mshmesh associated with element matrices

Definition at line 129 of file ElemMtxs_base.F90.

References parameters::D_TAG_ELEMMTXS_ELEMIDXS, parameters::D_TAG_ELEMMTXS_ELEMRHS, parameters::D_TAG_ELEMMTXS_ELEMS, and globals::MPI_fkind.

Referenced by ElemMtxs_distribute::ElemMtxs_recvAndAssemble(), and ElemMtxs_distribute::ElemMtxsIntf_distAndAssemble().

subroutine ElemMtxs_base::ElemMtxsPacket_Destroy ( type(ElemMtxsPacket),intent(inout)  packet)

Destructor.

Definition at line 246 of file ElemMtxs_base.F90.

References ElemMtxsChunk_Destroy().

Referenced by ElemMtxs_distribute::ElemMtxsIntf_Destroy().

subroutine ElemMtxs_base::ElemMtxsPacket_Init ( type(ElemMtxsPacket),intent(out)  packet,
type(Mesh),intent(in)  Msh,
integer,intent(in),optional  nelems 
)
subroutine ElemMtxs_base::ElemMtxsPacket_send ( type(ElemMtxsPacket),intent(inout),target  packet,
type(Mesh),intent(in)  Msh,
integer,intent(in)  p 
)
logical ElemMtxs_base::ElemMtxsPacket_sendInProgress ( type(ElemMtxsPacket),intent(inout)  packet)

Check if packet sending is still in progress.

Definition at line 286 of file ElemMtxs_base.F90.

References not.

Referenced by ElemMtxs_distribute::ElemMtxs_readAndDistribute().

subroutine ElemMtxs_base::ElemMtxsPacket_wait ( type(ElemMtxsPacket),intent(inout)  packet)

Wait for packet send request to finish.

Definition at line 309 of file ElemMtxs_base.F90.

Referenced by ElemMtxs_distribute::ElemMtxs_readAndDistribute(), and ElemMtxs_distribute::ElemMtxsIntf_distAndAssemble().


Variable Documentation

integer(kind=1),parameter ElemMtxs_base::D_ELEM_INNER = 0

Element types: element is considered 'interface' element when some of its freedoms are shared with elements from other partitions.

Definition at line 47 of file ElemMtxs_base.F90.

Referenced by ElemMtxs_distribute::ElemMtxsIntf_buildInnerInterfEMask().

integer(kind=1),parameter ElemMtxs_base::D_ELEM_INTERF = 1
integer,parameter ElemMtxs_base::D_ELEMMTXS_IN_PACKET = 1024

Packet size - element matrices are distributed with this granularity.

Definition at line 54 of file ElemMtxs_base.F90.

Referenced by ElemMtxs_distribute::ElemMtxs_recvAndAssemble(), and ElemMtxsPacket_Init().