9 #ifndef ActuatorLinePointDrag_h 10 #define ActuatorLinePointDrag_h 40 size_t localId,
Point centroidCoords,
double radius,
double omega,
double twoSigSq,
double *velocity);
77 void populate_candidate_elements();
80 void create_actuator_line_point_info_map();
83 void determine_elems_to_ghost();
86 void manage_ghosting();
89 void set_current_coordinates(
90 double *lineCentroid,
double *centroidCoords,
const double &omega,
const double ¤tTime);
91 void set_current_velocity(
92 double *lineCentroid,
const double *centroidCoords,
double *velocity,
const double &omega);
95 void complete_search();
101 void resize_std_vector(
102 const int &sizeOfField,
103 std::vector<double> &theVector,
104 stk::mesh::Entity elem,
105 const stk::mesh::BulkData & bulkData);
109 const int &sizeOfField,
111 const stk::mesh::FieldBase &stkField,
112 stk::mesh::Entity
const* elem_node_rels,
113 const int &nodesPerElement);
115 void gather_field_for_interp(
116 const int &sizeOfField,
118 const stk::mesh::FieldBase &stkField,
119 stk::mesh::Entity
const* elem_node_rels,
120 const int &nodesPerElement);
123 double compute_volume(
125 stk::mesh::Entity elem,
126 const stk::mesh::BulkData & bulkData);
129 void interpolate_field(
130 const int &sizeOfField,
131 stk::mesh::Entity elem,
132 const stk::mesh::BulkData & bulkData,
133 double *isoParCoords,
134 const double *fieldAtNodes,
138 void compute_point_drag(
140 const double &pointRadius,
141 const double *pointVelocity,
142 const double *pointGasVelocity,
143 const double &pointGasViscosity,
144 const double &pointGasDensity,
146 double &pointDragLHS);
149 void compute_elem_centroid(
151 double *elemCentroid,
152 const int &nodesPerElement);
155 double compute_radius(
157 const double *elemCentroid,
158 const double *pointCentroid);
161 void compute_elem_drag_given_radius(
163 const double &radius,
164 const double &twoSigSq,
165 const double *pointDrag,
169 void assemble_source_to_nodes(
171 stk::mesh::Entity elem,
172 const stk::mesh::BulkData & bulkData,
173 const double &elemVolume,
175 const double &dragLHS,
176 stk::mesh::FieldBase &actuator_source,
177 stk::mesh::FieldBase &actuator_source_lhs,
178 const double &lhsFac);
stk::mesh::EntityProcVec elemsToGhost_
Definition: ActuatorLinePointDrag.h:191
Definition: ActuatorLinePointDrag.h:37
uint64_t localPointId_
Definition: ActuatorLinePointDrag.h:194
Definition: ABLForcingAlgorithm.C:26
int processorId_
Definition: ActuatorLinePointDrag.h:25
void initialize(int N, aligned_vector &x, aligned_vector &y)
Definition: UnitTestSimdBasic.C:37
std::vector< std::pair< theKey, theKey > > searchKeyPair_
Definition: ActuatorLinePointDrag.h:203
std::vector< boundingSphere > boundingSphereVec_
Definition: ActuatorLinePointDrag.h:206
Definition: ActuatorLinePointDrag.h:57
Coordinates tipCoordinates_
Definition: ActuatorLinePointDrag.h:31
size_t localId_
Definition: ActuatorLinePointDrag.h:42
std::vector< double > ws_density_
Definition: ActuatorLinePointDrag.h:222
int numPoints_
Definition: ActuatorLinePointDrag.h:26
Coordinates tailCoordinates_
Definition: ActuatorLinePointDrag.h:32
std::vector< boundingElementBox > boundingElementBoxVec_
Definition: ActuatorLinePointDrag.h:207
std::vector< double > ws_velocity_
Definition: ActuatorLinePointDrag.h:221
double radius_
Definition: ActuatorLinePointDrag.h:28
std::vector< double > ws_viscosity_
Definition: ActuatorLinePointDrag.h:223
stk::mesh::Entity bestElem_
Definition: ActuatorLinePointDrag.h:48
stk::search::Point< double > Point
Definition: Actuator.h:39
Realm & realm_
Definition: ActuatorLinePointDrag.h:181
Definition: ActuatorLinePointDrag.h:19
std::vector< double > ws_scv_volume_
Definition: ActuatorLinePointDrag.h:220
~ActuatorLinePointDragInfo()
Definition: ActuatorLinePointDrag.C:68
stk::mesh::Ghosting * actuatorLineGhosting_
Definition: ActuatorLinePointDrag.h:187
std::vector< double > isoParCoords_
Definition: ActuatorLinePointDrag.h:53
double radius_
Definition: ActuatorLinePointDrag.h:44
double bestX_
Definition: ActuatorLinePointDrag.h:47
Definition: NaluParsing.h:38
std::vector< std::string > searchTargetNames_
Definition: ActuatorLinePointDrag.h:210
const double pi_
Definition: ActuatorLinePointDrag.h:200
double twoSigSq_
Definition: ActuatorLinePointDrag.h:30
double omega_
Definition: ActuatorLinePointDrag.h:45
std::string turbineName_
Definition: ActuatorLinePointDrag.h:27
std::vector< ActuatorLinePointDragInfo * > actuatorLineInfo_
Definition: ActuatorLinePointDrag.h:213
Definition: Actuator.h:47
std::map< size_t, ActuatorLinePointDragPointInfo * > actuatorLinePointInfoMap_
Definition: ActuatorLinePointDrag.h:216
std::vector< stk::mesh::Entity > elementVec_
Definition: ActuatorLinePointDrag.h:54
Point centroidCoords_
Definition: ActuatorLinePointDrag.h:43
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
std::vector< double > ws_coordinates_
Definition: ActuatorLinePointDrag.h:219
ActuatorLinePointDragInfo()
Definition: ActuatorLinePointDrag.C:54
Coordinates coordinates_
Definition: ActuatorLinePointDrag.h:33
uint64_t needToGhostCount_
Definition: ActuatorLinePointDrag.h:190
double omega_
Definition: ActuatorLinePointDrag.h:29
stk::search::SearchMethod searchMethod_
Definition: ActuatorLinePointDrag.h:184
bool actuatorLineMotion_
Definition: ActuatorLinePointDrag.h:197
double twoSigSq_
Definition: ActuatorLinePointDrag.h:46