SPH
|
#include "math/rng/Rng.h"
#include "objects/geometry/SymmetricTensor.h"
#include "objects/wrappers/Flags.h"
#include "physics/Constants.h"
Go to the source code of this file.
Classes | |
class | Analytic::StaticSphere |
Properties of a homogeneous sphere in rest (no temporal derivatives) More... | |
class | ImpactCone |
class | CollisionMC |
Namespaces | |
Analytic | |
Contains analytic solutions of equations. | |
Rigid | |
Physics of rigid body. | |
Functions | |
INLINE SymmetricTensor | Rigid::sphereInertia (const Float m, const Float r) |
Computes the inertia tensor of a homogeneous sphere. More... | |
INLINE SymmetricTensor | Rigid::parallelAxisTheorem (const SymmetricTensor &I, const Float m, const Vector &a) |
Computes the inertia tensor with respect to given point. More... | |
INLINE Float | getCriticalFrequency (const Float rho) |
Computes the critical (break-up) angular velocity of a body. More... | |
Float | evalBenzAsphaugScalingLaw (const Float D, const Float rho) |
Returns the critical energy Q_D^* as a function of body diameter. More... | |
Float | getImpactEnergy (const Float R, const Float r, const Float v) |
Computes the impact energy Q from impact parameters. More... | |
Float | getEffectiveImpactArea (const Float R, const Float r, const Float phi) |
Returns the the ratio of the cross-sectional area of the impact and the total area of the impactor. More... | |
Float | getImpactorRadius (const Float R_pb, const Float v_imp, const Float QOverQ_D, const Float rho) |
Calculates the impactor radius to satisfy required impact parameters. More... | |
Float | getImpactorRadius (const Float R_pb, const Float v_imp, const Float phi, const Float Q_effOverQ_D, const Float rho) |
Calculates the impactor radius to satisfy required impact parameters. More... | |
Returns the critical energy Q_D^* as a function of body diameter.
The critical energy is a kinetic energy for which half of the target is dispersed into the fragments. In other words, impact with critical energy will produce largest remnant (or fragment), mass of which is 50% mass of the parent body, The relation follows the scaling law of Benz & Asphaug (1999).
Definition at line 5 of file Functions.cpp.
Computes the critical (break-up) angular velocity of a body.
This value is only based on the ratio of the gravity and centrifugal force. It is a function of density only, is does not depend on the radius of the body. Note that bodies rotating above the break-up limit exist, especially smaller monolithic bodies with D ~ 100m!
Definition at line 82 of file Functions.h.
Returns the the ratio of the cross-sectional area of the impact and the total area of the impactor.
This value is lower than 1 only at high impact angles, where a part of the impactor misses the target entirely (hit-and-run collision) and does not deliver its kinetic energy into the target. For the same Q/Q_D, oblique impacts will therefore look 'artificially' weaker than the impacts and lower impacts angle. Effective impact area can be used to 'correct' the impact energy, so that impacts at high impact angles are comparable with head-on impats. See Sevecek_2017 for details.
Q | Relative impact energy (kinetic energy of the impactor divided by the impactor mass) |
R | Radius of the target |
r | Radius of the impactor |
phi | Impact angle in radians |
Definition at line 22 of file Functions.cpp.
Computes the impact energy Q from impact parameters.
R | Radius of the target |
r | Radius of the impactor |
v | Impact speed. |
Definition at line 18 of file Functions.cpp.
Float getImpactorRadius | ( | const Float | R_pb, |
const Float | v_imp, | ||
const Float | phi, | ||
const Float | Q_effOverQ_D, | ||
const Float | rho | ||
) |
Calculates the impactor radius to satisfy required impact parameters.
The radius is computed so that the total relative effective impact energy is equal to the given value, assuming Benz & Asphaug scaling law. The effective impact energy takes into account the projected impact area, see getEffectiveImpactArea.
R_pb | Radius of the parent body (target) |
v_imp | Impact velocity |
phi | Impact angle |
Q_effOverQ_D | Ratio of the relative impact energy and the critical energy given by the scaling law |
rho | Density of the parent bod |
Definition at line 42 of file Functions.cpp.
Float getImpactorRadius | ( | const Float | R_pb, |
const Float | v_imp, | ||
const Float | QOverQ_D, | ||
const Float | rho | ||
) |
Calculates the impactor radius to satisfy required impact parameters.
The radius is computed so that the total relative impact energy is equal to the given value, assuming Benz & Asphaug scaling law.
R_pb | Radius of the parent body (target) |
v_imp | Impact velocity |
QOverQ_D | Ratio of the impact energy and the critical energy given by the scaling law |
rho | Density of the parent bod |
Definition at line 35 of file Functions.cpp.