Cardinal
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
FieldTransferBase Class Reference

#include <FieldTransferBase.h>

Inheritance diagram for FieldTransferBase:
[legend]

Public Member Functions

 FieldTransferBase (const InputParameters &parameters)
 
 ~FieldTransferBase ()
 
virtual void sendDataToNek ()
 Send data to Nek. More...
 
virtual void readDataFromNek ()
 Read data from Nek. More...
 
const MooseEnum & direction () const
 Get the direction of the transfer. More...
 

Static Public Member Functions

static InputParameters validParams ()
 
static std::map< unsigned int, std::string > usrwrkMap ()
 

Protected Member Functions

void fillAuxVariable (const unsigned int var_number, const double *value)
 
void addExternalVariable (const std::string name)
 
void addExternalVariable (const unsigned int slot, const std::string name)
 
void addExternalPostprocessor (const std::string name, const Real initial)
 
void checkAllocatedUsrwrkSlot (const unsigned int &u) const
 

Protected Attributes

std::string _variable
 Variable name (or prefix of names) to create in MOOSE to facilitate data passing. More...
 
std::vector< unsigned int > _usrwrk_slot
 Slot in usrwrk array to use for writing data, if 'direction = to_nek'. More...
 
std::map< std::string, unsigned int > _variable_number
 Internal number for the variable(s) created in MOOSE (name, number) More...
 
int _n_per_surf
 Number of points on the MOOSE mesh to write per element surface. More...
 
int _n_per_vol
 Number of points on the MOOSE mesh to write per element volume. More...
 
double * _v_face = nullptr
 MOOSE data interpolated onto the (boundary) data transfer mesh. More...
 
double * _v_elem = nullptr
 MOOSE data interpolated onto the (volume) data transfer mesh. More...
 
double * _external_data = nullptr
 Scratch space to place external NekRS fields before writing into auxiliary variables. More...
 
NekRSProblem_nek_problem
 The NekRSProblem using the field transfer interface. More...
 
NekRSMesh_nek_mesh
 The underlying NekRSMesh mirror. More...
 
const MooseEnum & _direction
 Direction of the transfer. More...
 

Static Protected Attributes

static std::map< unsigned int, std::string > _field_usrwrk_map
 

Detailed Description

Base class for facilitating a data transfer between MOOSE and the NekRS code internals for a field (a variable defined at the GLL points).

Constructor & Destructor Documentation

◆ FieldTransferBase()

FieldTransferBase::FieldTransferBase ( const InputParameters &  parameters)

◆ ~FieldTransferBase()

FieldTransferBase::~FieldTransferBase ( )

Member Function Documentation

◆ addExternalPostprocessor()

void NekTransferBase::addExternalPostprocessor ( const std::string  name,
const Real  initial 
)
protectedinherited

Add a postprocessor to facilitate coupling

Parameters
[in]namepostprocessor name
[in]initialinitial value to use for the postprocessor

◆ addExternalVariable() [1/2]

void FieldTransferBase::addExternalVariable ( const std::string  name)
protected

Add a MOOSE variable to facilitate coupling

Parameters
[in]namevariable name

◆ addExternalVariable() [2/2]

void FieldTransferBase::addExternalVariable ( const unsigned int  slot,
const std::string  name 
)
protected

Add a MOOSE variable to facilitate coupling

Parameters
[in]slotslot in usrwrk array holding this field
[in]namevariable name

◆ checkAllocatedUsrwrkSlot()

void NekTransferBase::checkAllocatedUsrwrkSlot ( const unsigned int &  u) const
protectedinherited

Check if a specified slot in the usrwrk array has been allocated

Parameters
[in]uslice in usrwrk array

◆ direction()

const MooseEnum& NekTransferBase::direction ( ) const
inlineinherited

Get the direction of the transfer.

◆ fillAuxVariable()

void FieldTransferBase::fillAuxVariable ( const unsigned int  var_number,
const double *  value 
)
protected

Fill an outgoing auxiliary variable field with nekRS solution data

Parameters
[in]var_numberauxiliary variable number
[in]valuenekRS solution data to fill the variable with

◆ readDataFromNek()

virtual void NekTransferBase::readDataFromNek ( )
inlinevirtualinherited

Read data from Nek.

Reimplemented in NekBoundaryFlux, and NekFieldVariable.

◆ sendDataToNek()

virtual void NekTransferBase::sendDataToNek ( )
inlinevirtualinherited

◆ usrwrkMap()

static std::map<unsigned int, std::string> FieldTransferBase::usrwrkMap ( )
inlinestatic

Get the mapping of usrwrk slots to variable names for all field transfers

Returns
map ordered as (slot number, name)

◆ validParams()

static InputParameters FieldTransferBase::validParams ( )
static

Member Data Documentation

◆ _direction

const MooseEnum& NekTransferBase::_direction
protectedinherited

Direction of the transfer.

◆ _external_data

double* FieldTransferBase::_external_data = nullptr
protected

Scratch space to place external NekRS fields before writing into auxiliary variables.

◆ _field_usrwrk_map

std::map<unsigned int, std::string> FieldTransferBase::_field_usrwrk_map
staticprotected

Information about data stored in the usrwrk array for error checking and diagnostics; stored as (slot, variable name in MOOSE)

◆ _n_per_surf

int FieldTransferBase::_n_per_surf
protected

Number of points on the MOOSE mesh to write per element surface.

◆ _n_per_vol

int FieldTransferBase::_n_per_vol
protected

Number of points on the MOOSE mesh to write per element volume.

◆ _nek_mesh

NekRSMesh* NekTransferBase::_nek_mesh
protectedinherited

The underlying NekRSMesh mirror.

◆ _nek_problem

NekRSProblem& NekTransferBase::_nek_problem
protectedinherited

The NekRSProblem using the field transfer interface.

◆ _usrwrk_slot

std::vector<unsigned int> FieldTransferBase::_usrwrk_slot
protected

Slot in usrwrk array to use for writing data, if 'direction = to_nek'.

◆ _v_elem

double* FieldTransferBase::_v_elem = nullptr
protected

MOOSE data interpolated onto the (volume) data transfer mesh.

◆ _v_face

double* FieldTransferBase::_v_face = nullptr
protected

MOOSE data interpolated onto the (boundary) data transfer mesh.

◆ _variable

std::string FieldTransferBase::_variable
protected

Variable name (or prefix of names) to create in MOOSE to facilitate data passing.

◆ _variable_number

std::map<std::string, unsigned int> FieldTransferBase::_variable_number
protected

Internal number for the variable(s) created in MOOSE (name, number)


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