![]() |
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
|
Set the reference pressure in the computational domain for ABL simulations. More...
#include <FixPressureAtNodeAlgorithm.h>
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 FixPressureAtNodeInfo & | info_ |
| VectorFieldType * | coordinates_ {nullptr} |
| Reference to the coordinates field. More... | |
| ScalarFieldType * | pressure_ {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 | |
| Realm & | realm_ |
| 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 | |
| EquationSystem * | eqSystem_ |
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:
Alternately, the user can specify an STK node identifier instead of performing a search for the nearest node.
| sierra::nalu::FixPressureAtNodeAlgorithm::FixPressureAtNodeAlgorithm | ( | Realm & | realm, |
| stk::mesh::Part * | part, | ||
| EquationSystem * | eqSystem | ||
| ) |
|
virtual |
| stk::mesh::EntityId sierra::nalu::FixPressureAtNodeAlgorithm::determine_nearest_node | ( | ) |
Determine the nearest node on the mesh to the user-specified location.
References sierra::nalu::Realm::bulk_data(), coordinates_, info_, sierra::nalu::FixPressureAtNodeInfo::location_, sierra::nalu::Realm::meta_data(), sierra::nalu::Algorithm::realm_, and sierra::nalu::FixPressureAtNodeInfo::searchParts_.
Referenced by initialize().
|
virtual |
Implements sierra::nalu::SolverAlgorithm.
References sierra::nalu::SolverAlgorithm::apply_coeff(), doInit_, sierra::nalu::SolverAlgorithm::eqSystem_, fixPressureNode_, info_, initialize(), anonymous_namespace{UnitTestContinuityAdvElem.C}::hex8_golds::advection_default::lhs, sierra::nalu::EquationSystem::linsys_, pressure_, refNodeList_, sierra::nalu::FixPressureAtNodeInfo::refPressure_, sierra::nalu::LinearSystem::resetRows(), and anonymous_namespace{UnitTestContinuityAdvElem.C}::hex8_golds::advection_default::rhs.
| void sierra::nalu::FixPressureAtNodeAlgorithm::initialize | ( | ) |
References determine_nearest_node(), doInit_, info_, sierra::nalu::FixPressureAtNodeInfo::lookupType_, process_pressure_fix_node(), refNodeList_, sierra::nalu::FixPressureAtNodeInfo::SPATIAL_LOCATION, sierra::nalu::FixPressureAtNodeInfo::STK_NODE_ID, and sierra::nalu::FixPressureAtNodeInfo::stkNodeId_.
Referenced by execute().
|
virtual |
Implements sierra::nalu::SolverAlgorithm.
| 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().
| 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} |
Referenced by execute(), and process_pressure_fix_node().
| const FixPressureAtNodeInfo& sierra::nalu::FixPressureAtNodeAlgorithm::info_ |
Referenced by determine_nearest_node(), execute(), and initialize().
| 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().
1.8.11