Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
Public Member Functions | Public Attributes | List of all members
sierra::nalu::FixPressureAtNodeAlgorithm Class Reference

Set the reference pressure in the computational domain for ABL simulations. More...

#include <FixPressureAtNodeAlgorithm.h>

Inheritance diagram for sierra::nalu::FixPressureAtNodeAlgorithm:
sierra::nalu::SolverAlgorithm sierra::nalu::Algorithm

Public Member Functions

 FixPressureAtNodeAlgorithm (Realm &realm, stk::mesh::Part *part, EquationSystem *eqSystem)
 
virtual ~FixPressureAtNodeAlgorithm ()
 
virtual void initialize_connectivity ()
 
virtual void execute ()
 
void initialize ()
 
stk::mesh::EntityId determine_nearest_node ()
 Determine the nearest node on the mesh to the user-specified location. More...
 
void process_pressure_fix_node (const stk::mesh::EntityId nodeID)
 Process the node ID and determine the node where the fix is applied. More...
 
- Public Member Functions inherited from sierra::nalu::SolverAlgorithm
 SolverAlgorithm (Realm &realm, stk::mesh::Part *part, EquationSystem *eqSystem)
 
virtual ~SolverAlgorithm ()
 
- Public Member Functions inherited from sierra::nalu::Algorithm
 Algorithm (Realm &realm, stk::mesh::Part *part)
 
 Algorithm (Realm &realm, stk::mesh::PartVector &partVec)
 
virtual ~Algorithm ()
 
virtual void pre_work ()
 

Public Attributes

const FixPressureAtNodeInfoinfo_
 
VectorFieldTypecoordinates_ {nullptr}
 Reference to the coordinates field. More...
 
ScalarFieldTypepressure_ {nullptr}
 Reference to the pressure field. More...
 
std::vector< stk::mesh::Entity > refNodeList_
 List of nodes where pressure is referenced/fixed. Should be a list of size = 1. More...
 
const bool meshMotion_ {false}
 Track mesh motion for reinitialization. More...
 
bool doInit_ {true}
 Track initialization tasks. More...
 
bool fixPressureNode_ {false}
 
- Public Attributes inherited from sierra::nalu::Algorithm
Realmrealm_
 
stk::mesh::PartVector partVec_
 
std::vector< SupplementalAlgorithm * > supplementalAlg_
 
std::vector< Kernel * > activeKernels_
 

Additional Inherited Members

- Protected Member Functions inherited from sierra::nalu::SolverAlgorithm
void apply_coeff (const std::vector< stk::mesh::Entity > &sym_meshobj, std::vector< int > &scratchIds, std::vector< double > &scratchVals, const std::vector< double > &rhs, const std::vector< double > &lhs, const char *trace_tag=0)
 
void apply_coeff (unsigned numMeshobjs, const stk::mesh::Entity *symMeshobjs, const SharedMemView< int * > &scratchIds, const SharedMemView< int * > &sortPermutation, const SharedMemView< const double * > &rhs, const SharedMemView< const double ** > &lhs, const char *trace_tag)
 
- Protected Attributes inherited from sierra::nalu::SolverAlgorithm
EquationSystemeqSystem_
 

Detailed Description

Set the reference pressure in the computational domain for ABL simulations.

This algorithm sets the reference pressure at an internal computational node that is used as a reference for the Continuity equation. Reference pressure is necessary in situations where all the boundaries are either periodic or symmetry, e.g., precursor simulations where the sides are periodic and the top boundary is usually set to symmetry.

The reference pressure can be activated by adding the section abl_fix_pressure to the solution_options for the relevant realm as shown below:

solution_options:
name: ablSimOptions
fix_pressure_at_node:
node_lookup_type: spatial_location # Use nearest node search
value: 0.0 # Reference pressure
location: [10.0, 10.0, 10.0] # Spatial location where pressure is referenced
search_target_part: [Unspecified-2-HEX] # List of mesh parts to be searched
search_method: stk_kdtree # Search method to determine nearest node

Alternately, the user can specify an STK node identifier instead of performing a search for the nearest node.

solution_options:
name: ablSimOptions
fix_pressure_at_node:
node_lookup_type: stk_node_id # Use STK node identifier
node_identifier: 33662 # STK Node ID
value: 0.0 # Reference pressure
See also
FixPressureAtNodeInfo

Constructor & Destructor Documentation

sierra::nalu::FixPressureAtNodeAlgorithm::FixPressureAtNodeAlgorithm ( Realm realm,
stk::mesh::Part *  part,
EquationSystem eqSystem 
)
sierra::nalu::FixPressureAtNodeAlgorithm::~FixPressureAtNodeAlgorithm ( )
virtual

Member Function Documentation

stk::mesh::EntityId sierra::nalu::FixPressureAtNodeAlgorithm::determine_nearest_node ( )
void sierra::nalu::FixPressureAtNodeAlgorithm::execute ( )
virtual
void sierra::nalu::FixPressureAtNodeAlgorithm::initialize ( )
void sierra::nalu::FixPressureAtNodeAlgorithm::initialize_connectivity ( )
virtual
void sierra::nalu::FixPressureAtNodeAlgorithm::process_pressure_fix_node ( const stk::mesh::EntityId  nodeID)

Process the node ID and determine the node where the fix is applied.

References sierra::nalu::Realm::bulk_data(), fixPressureNode_, sierra::nalu::Algorithm::realm_, and refNodeList_.

Referenced by initialize().

Member Data Documentation

VectorFieldType* sierra::nalu::FixPressureAtNodeAlgorithm::coordinates_ {nullptr}

Reference to the coordinates field.

Referenced by determine_nearest_node(), and FixPressureAtNodeAlgorithm().

bool sierra::nalu::FixPressureAtNodeAlgorithm::doInit_ {true}

Track initialization tasks.

Referenced by execute(), and initialize().

bool sierra::nalu::FixPressureAtNodeAlgorithm::fixPressureNode_ {false}
const FixPressureAtNodeInfo& sierra::nalu::FixPressureAtNodeAlgorithm::info_
const bool sierra::nalu::FixPressureAtNodeAlgorithm::meshMotion_ {false}

Track mesh motion for reinitialization.

ScalarFieldType* sierra::nalu::FixPressureAtNodeAlgorithm::pressure_ {nullptr}

Reference to the pressure field.

Referenced by execute(), and FixPressureAtNodeAlgorithm().

std::vector<stk::mesh::Entity> sierra::nalu::FixPressureAtNodeAlgorithm::refNodeList_

List of nodes where pressure is referenced/fixed. Should be a list of size = 1.

Referenced by execute(), initialize(), and process_pressure_fix_node().


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