![]() |
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
|
#include <ActuatorLinePointDrag.h>
Public Member Functions | |
| ActuatorLinePointDrag (Realm &realm, const YAML::Node &node) | |
| ~ActuatorLinePointDrag () | |
| void | load (const YAML::Node &node) |
| void | setup () |
| void | initialize () |
| void | populate_candidate_elements () |
| void | create_actuator_line_point_info_map () |
| void | determine_elems_to_ghost () |
| void | manage_ghosting () |
| void | set_current_coordinates (double *lineCentroid, double *centroidCoords, const double &omega, const double ¤tTime) |
| void | set_current_velocity (double *lineCentroid, const double *centroidCoords, double *velocity, const double &omega) |
| void | complete_search () |
| void | execute () |
| void | resize_std_vector (const int &sizeOfField, std::vector< double > &theVector, stk::mesh::Entity elem, const stk::mesh::BulkData &bulkData) |
| void | gather_field (const int &sizeOfField, double *fieldToFill, const stk::mesh::FieldBase &stkField, stk::mesh::Entity const *elem_node_rels, const int &nodesPerElement) |
| void | gather_field_for_interp (const int &sizeOfField, double *fieldToFill, const stk::mesh::FieldBase &stkField, stk::mesh::Entity const *elem_node_rels, const int &nodesPerElement) |
| double | compute_volume (const int &nDim, stk::mesh::Entity elem, const stk::mesh::BulkData &bulkData) |
| void | interpolate_field (const int &sizeOfField, stk::mesh::Entity elem, const stk::mesh::BulkData &bulkData, double *isoParCoords, const double *fieldAtNodes, double *pointField) |
| void | compute_point_drag (const int &nDim, const double &pointRadius, const double *pointVelocity, const double *pointGasVelocity, const double &pointGasViscosity, const double &pointGasDensity, double *pointDrag, double &pointDragLHS) |
| void | compute_elem_centroid (const int &nDim, double *elemCentroid, const int &nodesPerElement) |
| double | compute_radius (const int &nDim, const double *elemCentroid, const double *pointCentroid) |
| void | compute_elem_drag_given_radius (const int &nDim, const double &radius, const double &twoSigSq, const double *pointDrag, double *elemDrag) |
| void | assemble_source_to_nodes (const int &nDim, stk::mesh::Entity elem, const stk::mesh::BulkData &bulkData, const double &elemVolume, const double *drag, const double &dragLHS, stk::mesh::FieldBase &actuator_source, stk::mesh::FieldBase &actuator_source_lhs, const double &lhsFac) |
Public Member Functions inherited from sierra::nalu::Actuator | |
| Actuator (Realm &realm, const YAML::Node &node) | |
| virtual | ~Actuator () |
Public Attributes | |
| Realm & | realm_ |
| stk::search::SearchMethod | searchMethod_ |
| stk::mesh::Ghosting * | actuatorLineGhosting_ |
| uint64_t | needToGhostCount_ |
| stk::mesh::EntityProcVec | elemsToGhost_ |
| uint64_t | localPointId_ |
| bool | actuatorLineMotion_ |
| const double | pi_ |
| std::vector< std::pair< theKey, theKey > > | searchKeyPair_ |
| std::vector< boundingSphere > | boundingSphereVec_ |
| std::vector< boundingElementBox > | boundingElementBoxVec_ |
| std::vector< std::string > | searchTargetNames_ |
| std::vector< ActuatorLinePointDragInfo * > | actuatorLineInfo_ |
| std::map< size_t, ActuatorLinePointDragPointInfo * > | actuatorLinePointInfoMap_ |
| std::vector< double > | ws_coordinates_ |
| std::vector< double > | ws_scv_volume_ |
| std::vector< double > | ws_velocity_ |
| std::vector< double > | ws_density_ |
| std::vector< double > | ws_viscosity_ |
| sierra::nalu::ActuatorLinePointDrag::ActuatorLinePointDrag | ( | Realm & | realm, |
| const YAML::Node & | node | ||
| ) |
References load().
| sierra::nalu::ActuatorLinePointDrag::~ActuatorLinePointDrag | ( | ) |
References actuatorLineInfo_.
| void sierra::nalu::ActuatorLinePointDrag::assemble_source_to_nodes | ( | const int & | nDim, |
| stk::mesh::Entity | elem, | ||
| const stk::mesh::BulkData & | bulkData, | ||
| const double & | elemVolume, | ||
| const double * | drag, | ||
| const double & | dragLHS, | ||
| stk::mesh::FieldBase & | actuator_source, | ||
| stk::mesh::FieldBase & | actuator_source_lhs, | ||
| const double & | lhsFac | ||
| ) |
| void sierra::nalu::ActuatorLinePointDrag::complete_search | ( | ) |
References actuatorLinePointInfoMap_, sierra::nalu::ActuatorLinePointDragPointInfo::bestElem_, sierra::nalu::ActuatorLinePointDragPointInfo::bestX_, sierra::nalu::Realm::bulk_data(), sierra::nalu::ActuatorLinePointDragPointInfo::centroidCoords_, sierra::nalu::ActuatorLinePointDragPointInfo::elementVec_, gather_field(), sierra::nalu::Realm::get_coordinates_name(), sierra::nalu::MasterElementRepo::get_surface_master_element(), sierra::nalu::MasterElement::isInElement(), sierra::nalu::ActuatorLinePointDragPointInfo::isoParCoords_, sierra::nalu::Realm::meta_data(), sierra::nalu::MasterElement::nodesPerElement_, sierra::nalu::NaluEnv::parallel_rank(), realm_, searchKeyPair_, and sierra::nalu::NaluEnv::self().
Referenced by initialize().
| void sierra::nalu::ActuatorLinePointDrag::compute_elem_centroid | ( | const int & | nDim, |
| double * | elemCentroid, | ||
| const int & | nodesPerElement | ||
| ) |
References ws_coordinates_.
Referenced by execute().
| void sierra::nalu::ActuatorLinePointDrag::compute_elem_drag_given_radius | ( | const int & | nDim, |
| const double & | radius, | ||
| const double & | twoSigSq, | ||
| const double * | pointDrag, | ||
| double * | elemDrag | ||
| ) |
Referenced by execute().
| void sierra::nalu::ActuatorLinePointDrag::compute_point_drag | ( | const int & | nDim, |
| const double & | pointRadius, | ||
| const double * | pointVelocity, | ||
| const double * | pointGasVelocity, | ||
| const double & | pointGasViscosity, | ||
| const double & | pointGasDensity, | ||
| double * | pointDrag, | ||
| double & | pointDragLHS | ||
| ) |
| double sierra::nalu::ActuatorLinePointDrag::compute_radius | ( | const int & | nDim, |
| const double * | elemCentroid, | ||
| const double * | pointCentroid | ||
| ) |
Referenced by execute().
| double sierra::nalu::ActuatorLinePointDrag::compute_volume | ( | const int & | nDim, |
| stk::mesh::Entity | elem, | ||
| const stk::mesh::BulkData & | bulkData | ||
| ) |
| void sierra::nalu::ActuatorLinePointDrag::create_actuator_line_point_info_map | ( | ) |
References actuatorLineInfo_, actuatorLinePointInfoMap_, boundingSphereVec_, sierra::nalu::Realm::get_current_time(), localPointId_, sierra::nalu::Realm::meta_data(), sierra::nalu::ActuatorLinePointDragInfo::numPoints_, sierra::nalu::ActuatorLinePointDragInfo::omega_, sierra::nalu::NaluEnv::parallel_rank(), sierra::nalu::ActuatorLinePointDragInfo::processorId_, sierra::nalu::ActuatorLinePointDragInfo::radius_, realm_, sierra::nalu::NaluEnv::self(), set_current_coordinates(), set_current_velocity(), sierra::nalu::ActuatorLinePointDragInfo::tailCoordinates_, sierra::nalu::ActuatorLinePointDragInfo::tipCoordinates_, sierra::nalu::ActuatorLinePointDragInfo::twoSigSq_, sierra::nalu::Coordinates::x_, sierra::nalu::Coordinates::y_, and sierra::nalu::Coordinates::z_.
Referenced by initialize().
| void sierra::nalu::ActuatorLinePointDrag::determine_elems_to_ghost | ( | ) |
|
virtual |
Implements sierra::nalu::Actuator.
References actuatorLineGhosting_, actuatorLineMotion_, actuatorLinePointInfoMap_, assemble_source_to_nodes(), sierra::nalu::ActuatorLinePointDragPointInfo::bestElem_, sierra::nalu::Realm::bulk_data(), sierra::nalu::ActuatorLinePointDragPointInfo::centroidCoords_, compute_elem_centroid(), compute_elem_drag_given_radius(), compute_point_drag(), compute_radius(), compute_volume(), sierra::nalu::ActuatorLinePointDragPointInfo::elementVec_, gather_field(), gather_field_for_interp(), sierra::nalu::Realm::get_buckets(), sierra::nalu::Realm::get_coordinates_name(), initialize(), interpolate_field(), sierra::nalu::Realm::is_turbulent(), sierra::nalu::ActuatorLinePointDragPointInfo::isoParCoords_, sierra::nalu::Realm::meta_data(), sierra::nalu::ActuatorLinePointDragPointInfo::radius_, realm_, resize_std_vector(), sierra::nalu::ActuatorLinePointDragPointInfo::twoSigSq_, sierra::nalu::ActuatorLinePointDragPointInfo::velocity_, ws_coordinates_, ws_density_, ws_velocity_, and ws_viscosity_.
| void sierra::nalu::ActuatorLinePointDrag::gather_field | ( | const int & | sizeOfField, |
| double * | fieldToFill, | ||
| const stk::mesh::FieldBase & | stkField, | ||
| stk::mesh::Entity const * | elem_node_rels, | ||
| const int & | nodesPerElement | ||
| ) |
Referenced by complete_search(), and execute().
| void sierra::nalu::ActuatorLinePointDrag::gather_field_for_interp | ( | const int & | sizeOfField, |
| double * | fieldToFill, | ||
| const stk::mesh::FieldBase & | stkField, | ||
| stk::mesh::Entity const * | elem_node_rels, | ||
| const int & | nodesPerElement | ||
| ) |
Referenced by execute().
|
virtual |
Implements sierra::nalu::Actuator.
References actuatorLineGhosting_, actuatorLinePointInfoMap_, boundingElementBoxVec_, boundingSphereVec_, sierra::nalu::Realm::bulk_data(), complete_search(), create_actuator_line_point_info_map(), determine_elems_to_ghost(), elemsToGhost_, manage_ghosting(), needToGhostCount_, populate_candidate_elements(), realm_, and searchKeyPair_.
Referenced by execute().
| void sierra::nalu::ActuatorLinePointDrag::interpolate_field | ( | const int & | sizeOfField, |
| stk::mesh::Entity | elem, | ||
| const stk::mesh::BulkData & | bulkData, | ||
| double * | isoParCoords, | ||
| const double * | fieldAtNodes, | ||
| double * | pointField | ||
| ) |
References sierra::nalu::MasterElementRepo::get_surface_master_element(), and sierra::nalu::MasterElement::interpolatePoint().
Referenced by execute().
|
virtual |
Implements sierra::nalu::Actuator.
References actuatorLineInfo_, actuatorLineMotion_, sierra::nalu::expect_sequence(), sierra::nalu::get_if_present(), sierra::nalu::NaluEnv::naluOutputP0(), sierra::nalu::ActuatorLinePointDragInfo::numPoints_, sierra::nalu::ActuatorLinePointDragInfo::omega_, sierra::nalu::NaluEnv::parallel_size(), sierra::nalu::ActuatorLinePointDragInfo::processorId_, sierra::nalu::ActuatorLinePointDragInfo::radius_, searchMethod_, searchTargetNames_, sierra::nalu::NaluEnv::self(), sierra::nalu::ActuatorLinePointDragInfo::tailCoordinates_, sierra::nalu::ActuatorLinePointDragInfo::tipCoordinates_, sierra::nalu::ActuatorLinePointDragInfo::turbineName_, and sierra::nalu::ActuatorLinePointDragInfo::twoSigSq_.
Referenced by ActuatorLinePointDrag().
| void sierra::nalu::ActuatorLinePointDrag::manage_ghosting | ( | ) |
References actuatorLineGhosting_, sierra::nalu::Realm::bulk_data(), elemsToGhost_, sierra::nalu::NaluEnv::naluOutputP0(), needToGhostCount_, realm_, and sierra::nalu::NaluEnv::self().
Referenced by initialize().
| void sierra::nalu::ActuatorLinePointDrag::populate_candidate_elements | ( | ) |
References boundingElementBoxVec_, sierra::nalu::Realm::bulk_data(), sierra::nalu::Realm::get_buckets(), sierra::nalu::Realm::get_coordinates_name(), sierra::nalu::Realm::meta_data(), sierra::nalu::NaluEnv::parallel_rank(), realm_, searchTargetNames_, and sierra::nalu::NaluEnv::self().
Referenced by initialize().
| void sierra::nalu::ActuatorLinePointDrag::resize_std_vector | ( | const int & | sizeOfField, |
| std::vector< double > & | theVector, | ||
| stk::mesh::Entity | elem, | ||
| const stk::mesh::BulkData & | bulkData | ||
| ) |
References sierra::nalu::MasterElementRepo::get_surface_master_element(), and sierra::nalu::MasterElement::nodesPerElement_.
Referenced by execute().
| void sierra::nalu::ActuatorLinePointDrag::set_current_coordinates | ( | double * | lineCentroid, |
| double * | centroidCoords, | ||
| const double & | omega, | ||
| const double & | currentTime | ||
| ) |
Referenced by create_actuator_line_point_info_map().
| void sierra::nalu::ActuatorLinePointDrag::set_current_velocity | ( | double * | lineCentroid, |
| const double * | centroidCoords, | ||
| double * | velocity, | ||
| const double & | omega | ||
| ) |
Referenced by create_actuator_line_point_info_map().
|
virtual |
Implements sierra::nalu::Actuator.
| stk::mesh::Ghosting* sierra::nalu::ActuatorLinePointDrag::actuatorLineGhosting_ |
Referenced by execute(), initialize(), and manage_ghosting().
| std::vector<ActuatorLinePointDragInfo *> sierra::nalu::ActuatorLinePointDrag::actuatorLineInfo_ |
Referenced by create_actuator_line_point_info_map(), load(), and ~ActuatorLinePointDrag().
| std::map<size_t, ActuatorLinePointDragPointInfo *> sierra::nalu::ActuatorLinePointDrag::actuatorLinePointInfoMap_ |
Referenced by complete_search(), create_actuator_line_point_info_map(), execute(), and initialize().
| std::vector<boundingElementBox> sierra::nalu::ActuatorLinePointDrag::boundingElementBoxVec_ |
Referenced by determine_elems_to_ghost(), initialize(), and populate_candidate_elements().
| std::vector<boundingSphere> sierra::nalu::ActuatorLinePointDrag::boundingSphereVec_ |
Referenced by create_actuator_line_point_info_map(), determine_elems_to_ghost(), and initialize().
| stk::mesh::EntityProcVec sierra::nalu::ActuatorLinePointDrag::elemsToGhost_ |
Referenced by determine_elems_to_ghost(), initialize(), and manage_ghosting().
| uint64_t sierra::nalu::ActuatorLinePointDrag::localPointId_ |
Referenced by create_actuator_line_point_info_map().
| uint64_t sierra::nalu::ActuatorLinePointDrag::needToGhostCount_ |
Referenced by determine_elems_to_ghost(), initialize(), and manage_ghosting().
| const double sierra::nalu::ActuatorLinePointDrag::pi_ |
Referenced by compute_point_drag().
| Realm& sierra::nalu::ActuatorLinePointDrag::realm_ |
Referenced by complete_search(), determine_elems_to_ghost(), and initialize().
| stk::search::SearchMethod sierra::nalu::ActuatorLinePointDrag::searchMethod_ |
Referenced by determine_elems_to_ghost(), and load().
| std::vector<std::string> sierra::nalu::ActuatorLinePointDrag::searchTargetNames_ |
Referenced by load(), and populate_candidate_elements().
| std::vector<double> sierra::nalu::ActuatorLinePointDrag::ws_coordinates_ |
Referenced by compute_elem_centroid(), compute_volume(), and execute().
| std::vector<double> sierra::nalu::ActuatorLinePointDrag::ws_density_ |
Referenced by execute().
| std::vector<double> sierra::nalu::ActuatorLinePointDrag::ws_scv_volume_ |
Referenced by assemble_source_to_nodes(), and compute_volume().
| std::vector<double> sierra::nalu::ActuatorLinePointDrag::ws_velocity_ |
Referenced by execute().
| std::vector<double> sierra::nalu::ActuatorLinePointDrag::ws_viscosity_ |
Referenced by execute().
1.8.11