|
FhSim
3.1.0
Marine systems simulation
|
Public Member Functions | |
| NetElement3NWithConstraints (const std::string netName, const unsigned long iID, const NetElementDef *netPanel, const double dRho_water, const double knotDiameter, const net_solidity::PanelSolidity &solidity) | |
| The constructor. | |
| ~NetElement3NWithConstraints (void) | |
| The destructor. | |
| NetElement3NWithConstraints (const NetElement3NWithConstraints &)=delete | |
| NetElement3NWithConstraints & | operator= (const NetElement3NWithConstraints &)=delete |
| void | AddNodeForces (const hydrodynamics::PanelLoadLaw &law, const hydrodynamics::Fluid &fluid, const double *const posA_ned, const double *const posB_ned, const double *const posC_ned, const double *const velA_ned, const double *const velB_ned, const double *const velC_ned, const double *const waterVel_ned, double *const nodeAforce_ned, double *const nodeBforce_ned, double *const nodeCforce_ned, const hydrodynamics::PanelClampLog *clampLog=nullptr) const |
| hydrodynamics::PanelLoad< double > | EvaluatePanelLoad (const hydrodynamics::PanelLoadLaw &law, const hydrodynamics::Fluid &fluid, const double *const posA_ned, const double *const posB_ned, const double *const posC_ned, const double elementVel[3], const double waterVel_ned[3], double &area) const |
| bool | HasBarDirections () const |
| True when the bar directions are defined, which needs a non-zero mesh determinant. | |
| double | Solidity (const double *const posA_ned, const double *const posB_ned, const double *const posC_ned) const |
| The solidity of the element at the given node positions, global frame. | |
| double | WakeSolidity (const double *const posA_ned, const double *const posB_ned, const double *const posC_ned) const |
| The solidity the element hands to its wake source at the given node positions, global frame (NetSolidity.h WakeSolidity, R56). | |
| double | CalcNodeInertia (int node) |
| Calculates the inertia of a node. | |
| double | GetNumberOfTwineLengthsU () |
| Returns the number of twine lengths in mesh direction u in panel. | |
| double | GetTwineDiameter () |
| Returns the twine diameter in the panel. | |
| void NetElement3NWithConstraints::AddNodeForces | ( | const hydrodynamics::PanelLoadLaw & | law, |
| const hydrodynamics::Fluid & | fluid, | ||
| const double *const | posA_ned, | ||
| const double *const | posB_ned, | ||
| const double *const | posC_ned, | ||
| const double *const | velA_ned, | ||
| const double *const | velB_ned, | ||
| const double *const | velC_ned, | ||
| const double *const | waterVel_ned, | ||
| double *const | nodeAforce_ned, | ||
| double *const | nodeBforce_ned, | ||
| double *const | nodeCforce_ned, | ||
| const hydrodynamics::PanelClampLog * | clampLog = nullptr |
||
| ) | const |
Adds this element's hydrodynamic load and weight in water to the forces on its nodes.
The load is one evaluation of law by the shared panel core (NetElement3NForces.h), at the solidity of the element's rule (NetSolidity.h) and the mesh opening angle of the given positions, shared equally between the three nodes. The element adds no twine tension and no damping, as before MARE-0095.
| [in] | law | The panel load law. |
| [in] | fluid | Density and kinematic viscosity. |
| [in] | posA_ned | Position of node A, global frame. |
| [in] | posB_ned | Position of node B, global frame. |
| [in] | posC_ned | Position of node C, global frame. |
| [in] | velA_ned | Velocity of node A, global frame. |
| [in] | velB_ned | Velocity of node B, global frame. |
| [in] | velC_ned | Velocity of node C, global frame. |
| [in] | waterVel_ned | Free-stream water velocity at the element, global frame. |
| [in,out] | nodeAforce_ned | Accumulator for the force on node A. |
| [in,out] | nodeBforce_ned | Accumulator for the force on node B. |
| [in,out] | nodeCforce_ned | Accumulator for the force on node C. |
| [in] | clampLog | Receives the load law's clamp flags (MARE-0140); none when null. |
| hydrodynamics::PanelLoad< double > NetElement3NWithConstraints::EvaluatePanelLoad | ( | const hydrodynamics::PanelLoadLaw & | law, |
| const hydrodynamics::Fluid & | fluid, | ||
| const double *const | posA_ned, | ||
| const double *const | posB_ned, | ||
| const double *const | posC_ned, | ||
| const double | elementVel[3], | ||
| const double | waterVel_ned[3], | ||
| double & | area | ||
| ) | const |
Evaluates the panel load law on the element without adding any node force.
The same evaluation as AddNodeForces makes, at a given element velocity instead of the mean of the node velocities; a wake caster uses it for the source strength (fhsim_environment/PanelSourceSet.h). As NetElement3N::EvaluatePanelLoad.
| [in] | law | The panel load law. |
| [in] | fluid | Density and kinematic viscosity. |
| [in] | posA_ned | Position of node A, global frame. |
| [in] | posB_ned | Position of node B, global frame. |
| [in] | posC_ned | Position of node C, global frame. |
| [in] | elementVel | Velocity of the element, global frame. |
| [in] | waterVel_ned | Free-stream water velocity at the element, global frame. |
| [out] | area | The element's area at the given positions, m^2. |