1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//! Claims that a pulsed high-voltage or time-varying magnetic field makes a local gravitational
//! field, computed against the two classical forces that act in the same apparatus: the
//! dielectrophoretic (Kelvin) polarisation force and the angular momentum stored in crossed
//! electric and magnetic fields.
//!
//! The claim is in Pais's US Navy patents and, more recently, in a 2025 Chinese patent and in
//! replications by independent experimenters: fields changing fast enough should produce a
//! gravito-electric or "vortex gravitational" field. Two setups recur — a dielectric sheet
//! between high-voltage electrodes, and a suspended dielectric ball between offset coils in
//! vacuum.
//!
//! Both setups have a conventional explanation whose size this module computes. The reported
//! signature of the first, that the sheet deflects the same way when the polarity is reversed,
//! is exactly what [`dielectrophoretic_force`] predicts, because that force follows `∇E²` and so
//! does not care about the field's sign. The second setup stores angular momentum in its crossed
//! fields ([`field_angular_momentum`]), which is delivered as a torque when the field is switched.
//!
//! What would separate a real effect from either is [`mass_independence`]: the classical forces
//! scale with a body's volume and permittivity, while a gravitational field accelerates every
//! body alike. Swapping the test body for a denser one of the same shape therefore changes the
//! acceleration if the force is electrostatic, and leaves it unchanged if the field is
//! gravitational.
//!
//! ```
//! use gravitics::electrogravity::{dielectrophoretic_force, mass_independence};
//!
//! // A 2 cm square of 0.15 mm plastic (ε_r = 2.2) near a 40 kV electrode, where
//! // E ≈ 10⁷ V/m falls off over centimetres: ∇E² ≈ 2×10¹⁶ V²/m³.
//! let volume = 0.02 * 0.02 * 0.15e-3;
//! let f = dielectrophoretic_force(volume, 2.2, 2e16);
//! assert!((f * 1e3 - 6.4).abs() < 0.1); // 6.4 mN: the weight of 650 mg
//!
//! // Polyethylene against tungsten, same shape: a classical force gives 20× the acceleration
//! // on the lighter body, a gravitational field exactly the same on both.
//! let ratio = mass_independence(950.0, 19_300.0);
//! assert!((ratio - 20.3).abs() < 0.1);
//! ```
use EPS_0;
/// The dielectrophoretic (Kelvin) force (N) on a neutral dielectric of volume `volume` (m³) and
/// relative permittivity `eps_r` in a field whose squared magnitude has gradient `grad_e2`
/// (V²/m³): `F = ½Vε₀(ε_r − 1)∇(E²)`.
///
/// It points toward the strongest field, which is the sharpest electrode. Because it depends on
/// `E²`, **reversing the polarity leaves it unchanged** — the signature often reported as
/// evidence of a gravitational effect.
/// The angular momentum (kg m²/s) stored in crossed static fields over a volume `volume` (m³):
/// `L = ε₀ r (E × B) V`, for field magnitudes `e` (V/m) and `b` (T) at lever arm `lever` (m),
/// taken perpendicular.
///
/// Switching the fields off transfers this to the apparatus as a mechanical impulse: the Feynman
/// disc paradox. A suspended body in such a field therefore turns when the field changes, with no
/// new physics.
/// How much more a classical polarisation force accelerates a light test body than a dense one of
/// the same shape: the density ratio `rho_dense/rho_light`.
///
/// A force set by volume and permittivity is the same on both, so the acceleration goes as `1/ρ`.
/// A gravitational field gives `a = E_g` whatever the body is made of, so the ratio is 1. Running
/// the same experiment with two bodies of equal shape and different density therefore separates
/// the two explanations, and it needs no absolute calibration.
/// The acceleration (m/s²) a force `force` (N) gives a body of volume `volume` (m³) and density
/// `rho` (kg/m³): `F/(ρV)`. Pair it with [`dielectrophoretic_force`] to turn a claimed
/// displacement into the acceleration a gravimeter would have to resolve.