Research-Stack/5-Applications/tools-scripts/ptos/ptos_gravity_storage_sim.py

78 lines
3.5 KiB
Python

#!/usr/bin/env python3
# ==============================================================================
# COPYRIGHT NO ONE EVERYWHERE LLC (WYOMING HOLDING COMPANY)
# PROJECT: SOVEREIGN STACK
# This artifact is entirely proprietary and cryptographically proven.
# Open-Source usage requires explicit permission from Brandon Scott Schneider.
# ==============================================================================
"""
Graph OS Gravity Energy Storage (GES) Matrix
Simulates kinetic potential energy storage using massive suspended composites ("rocks on strings").
Ideal for stabilizing micro-grids and macro-grids via brute-force gravity.
"""
import argparse
import math
def calculate_gravity_storage(mass_kg_per_unit, num_units, height_m, drop_velocity_m_s, efficiency):
# Standard Earth Gravity
g = 9.81 # m/s^2
# Total active mass
total_mass = mass_kg_per_unit * num_units
# Total Energy (Joules) = m * g * h
total_energy_j = total_mass * g * height_m
# Joules to Megawatt-hours (1 MWh = 3.6e9 Joules)
total_energy_mwh = total_energy_j / 3.6e9
# Power per unit = m * g * v * efficiency
power_per_unit_w = mass_kg_per_unit * g * drop_velocity_m_s * efficiency
total_power_w = power_per_unit_w * num_units
total_power_gw = total_power_w / 1e9
# Discharge time
discharge_time_s = height_m / drop_velocity_m_s if drop_velocity_m_s > 0 else 0
discharge_time_hr = discharge_time_s / 3600
return {
"mass_per_block_tons": mass_kg_per_unit / 1000.0,
"total_mass_tons": total_mass / 1000.0,
"total_energy_mwh": total_energy_mwh,
"total_power_gw": total_power_gw,
"discharge_time_hr": discharge_time_hr,
"efficiency": efficiency
}
def main():
parser = argparse.ArgumentParser(description="Graph OS Kinetic Gravity Storage")
parser.add_argument("--mass", type=float, default=35000.0, help="Mass per block in kg (default 35,000)")
parser.add_argument("--units", type=int, default=150000, help="Number of suspended blocks")
parser.add_argument("--height", type=float, default=150.0, help="Drop height in meters")
parser.add_argument("--velocity", type=float, default=0.25, help="Drop descent speed in m/s")
parser.add_argument("--eff", type=float, default=0.85, help="Round-trip mechanical/electrical efficiency")
args = parser.parse_args()
print("\n [ Graph OS KINETIC GRAVITY STORAGE MATRIX STARTING ]")
print(" [ INITIALIZING MASS-POTENTIAL TENSORS ]\n")
results = calculate_gravity_storage(
args.mass, args.units, args.height, args.velocity, args.eff
)
print(f" ── GRAVIMETRIC ARCHITECTURE:")
print(f" Block Mass: {results['mass_per_block_tons']:,.1f} Metric Tons")
print(f" Asset Count: {args.units:,} Suspended Units")
print(f" Total Lift Mass: {results['total_mass_tons']:,.1f} Metric Tons")
print(f" Drop Height: {args.height:,.1f} Meters")
print(f" Descent Velocity: {args.velocity:,.2f} m/s")
print(f" Sys. Efficiency: {results['efficiency']*100:.1f} %\n")
print(f" ── DISCHARGE YIELD LOCUS:")
print(f" Total Potential: {results['total_energy_mwh']:,.2f} MWh")
print(f" Peak Grid Power: {results['total_power_gw']:,.3f} Gigawatts (GW)")
print(f" Sustain Duration: {results['discharge_time_hr']:,.2f} Hours per cycle")
print(f"\n [ MATRIX STABLE: GRAVITATIONAL WELL ANCHORED ]\n")
if __name__ == "__main__":
main()