FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
NetElement3NWithConstraints Class Reference

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.
 

Member Function Documentation

◆ AddNodeForces()

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.

Parameters
[in]lawThe panel load law.
[in]fluidDensity and kinematic viscosity.
[in]posA_nedPosition of node A, global frame.
[in]posB_nedPosition of node B, global frame.
[in]posC_nedPosition of node C, global frame.
[in]velA_nedVelocity of node A, global frame.
[in]velB_nedVelocity of node B, global frame.
[in]velC_nedVelocity of node C, global frame.
[in]waterVel_nedFree-stream water velocity at the element, global frame.
[in,out]nodeAforce_nedAccumulator for the force on node A.
[in,out]nodeBforce_nedAccumulator for the force on node B.
[in,out]nodeCforce_nedAccumulator for the force on node C.
[in]clampLogReceives the load law's clamp flags (MARE-0140); none when null.

◆ EvaluatePanelLoad()

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.

Parameters
[in]lawThe panel load law.
[in]fluidDensity and kinematic viscosity.
[in]posA_nedPosition of node A, global frame.
[in]posB_nedPosition of node B, global frame.
[in]posC_nedPosition of node C, global frame.
[in]elementVelVelocity of the element, global frame.
[in]waterVel_nedFree-stream water velocity at the element, global frame.
[out]areaThe element's area at the given positions, m^2.
Returns
The panel load.

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