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

Couples NekRS and MOOSE through mesh displacements. More...

#include <NekMeshDeformation.h>

Inheritance diagram for NekMeshDeformation:
[legend]

Public Member Functions

 NekMeshDeformation (const InputParameters &parameters)
 
 ~NekMeshDeformation ()
 
virtual void sendDataToNek () override
 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 sendBoundaryDeformationToNek ()
 Send boundary deformation to nekRS. More...
 
void sendVolumeDeformationToNek ()
 Send volume mesh deformation flux to nekRS. More...
 
void calculateMeshVelocity (int e, const field::NekWriteEnum &field)
 
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

double * _displacement_x = nullptr
 displacement in x for all nodes from MOOSE, for moving mesh problems More...
 
double * _displacement_y = nullptr
 displacement in y for all nodes from MOOSE, for moving mesh problems More...
 
double * _displacement_z = nullptr
 displacement in z for all nodes from MOOSE, for moving mesh problems More...
 
double * _mesh_velocity_elem = nullptr
 mesh velocity for a given element, used internally for calculating mesh velocity over one element More...
 
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

Couples NekRS and MOOSE through mesh displacements.

Constructor & Destructor Documentation

◆ NekMeshDeformation()

NekMeshDeformation::NekMeshDeformation ( const InputParameters &  parameters)

◆ ~NekMeshDeformation()

NekMeshDeformation::~NekMeshDeformation ( )

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)
protectedinherited

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 
)
protectedinherited

Add a MOOSE variable to facilitate coupling

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

◆ calculateMeshVelocity()

void NekMeshDeformation::calculateMeshVelocity ( int  e,
const field::NekWriteEnum field 
)
protected

Calculate mesh velocity for NekRS's blending solver using current and previous displacement values and write it to nrs->usrwrk, from where it can be accessed in nekRS's .oudf file.

Parameters
[in]eBoundary element that the displacement values belong to
[in]fieldNekWriteEnum mesh_velocity_x/y/z field

◆ 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 
)
protectedinherited

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.

◆ sendBoundaryDeformationToNek()

void NekMeshDeformation::sendBoundaryDeformationToNek ( )
protected

Send boundary deformation to nekRS.

◆ sendDataToNek()

virtual void NekMeshDeformation::sendDataToNek ( )
overridevirtual

Send data to Nek.

Reimplemented from NekTransferBase.

◆ sendVolumeDeformationToNek()

void NekMeshDeformation::sendVolumeDeformationToNek ( )
protected

Send volume mesh deformation flux to nekRS.

◆ usrwrkMap()

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

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

Returns
map ordered as (slot number, name)

◆ validParams()

static InputParameters NekMeshDeformation::validParams ( )
static

Member Data Documentation

◆ _direction

const MooseEnum& NekTransferBase::_direction
protectedinherited

Direction of the transfer.

◆ _displacement_x

double* NekMeshDeformation::_displacement_x = nullptr
protected

displacement in x for all nodes from MOOSE, for moving mesh problems

◆ _displacement_y

double* NekMeshDeformation::_displacement_y = nullptr
protected

displacement in y for all nodes from MOOSE, for moving mesh problems

◆ _displacement_z

double* NekMeshDeformation::_displacement_z = nullptr
protected

displacement in z for all nodes from MOOSE, for moving mesh problems

◆ _external_data

double* FieldTransferBase::_external_data = nullptr
protectedinherited

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
staticprotectedinherited

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

◆ _mesh_velocity_elem

double* NekMeshDeformation::_mesh_velocity_elem = nullptr
protected

mesh velocity for a given element, used internally for calculating mesh velocity over one element

◆ _n_per_surf

int FieldTransferBase::_n_per_surf
protectedinherited

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

◆ _n_per_vol

int FieldTransferBase::_n_per_vol
protectedinherited

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
protectedinherited

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

◆ _v_elem

double* FieldTransferBase::_v_elem = nullptr
protectedinherited

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

◆ _v_face

double* FieldTransferBase::_v_face = nullptr
protectedinherited

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

◆ _variable

std::string FieldTransferBase::_variable
protectedinherited

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
protectedinherited

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


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