split actuators from energy storage
This commit is contained in:
@@ -78,9 +78,10 @@ def spaceship():
|
||||
def solar_sail():
|
||||
return Entity(
|
||||
name="Solar Sail",
|
||||
dimension="power_source",
|
||||
dimension="actuator",
|
||||
description="Propulsion via radiation pressure",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "radiation_pressure", None, "requires"),
|
||||
Dependency("environment", "atmosphere", "vacuum_or_thin", None, "requires"),
|
||||
Dependency("force", "power_density_w_kg", "0.01", "W/kg", "provides"),
|
||||
Dependency("environment", "medium", "space", None, "requires"),
|
||||
@@ -88,13 +89,27 @@ def solar_sail():
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def solar_radiation():
|
||||
return Entity(
|
||||
name="Solar Radiation",
|
||||
dimension="energy_storage",
|
||||
description="Photon flux from a nearby star",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "radiation_pressure", None, "provides"),
|
||||
Dependency("physical", "mass_kg", "0", "kg", "range_min"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def human_pedalling():
|
||||
return Entity(
|
||||
name="Human Pedalling",
|
||||
dimension="power_source",
|
||||
dimension="actuator",
|
||||
description="Human-powered via pedalling",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "biological", None, "requires"),
|
||||
Dependency("force", "power_density_w_kg", "1.5", "W/kg", "provides"),
|
||||
Dependency("physical", "mass_kg", "0", "kg", "range_min"),
|
||||
],
|
||||
@@ -102,14 +117,43 @@ def human_pedalling():
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def nuclear_reactor():
|
||||
def food_calories():
|
||||
return Entity(
|
||||
name="Modular Nuclear Reactor",
|
||||
dimension="power_source",
|
||||
description="Small modular nuclear fission reactor",
|
||||
name="Food/Calories",
|
||||
dimension="energy_storage",
|
||||
description="Metabolic energy from food",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "biological", None, "provides"),
|
||||
Dependency("physical", "mass_kg", "0", "kg", "range_min"),
|
||||
Dependency("physical", "energy_density_wh_kg", "200", "Wh/kg", "provides"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def nuclear_thermal_drive():
|
||||
return Entity(
|
||||
name="Nuclear Thermal Drive",
|
||||
dimension="actuator",
|
||||
description="Nuclear fission reactor for thrust",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "nuclear_thermal", None, "requires"),
|
||||
Dependency("force", "power_density_w_kg", "50", "W/kg", "provides"),
|
||||
Dependency("physical", "mass_kg", "2000", "kg", "range_min"),
|
||||
Dependency("physical", "mass_kg", "1500", "kg", "range_min"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def nuclear_fuel():
|
||||
return Entity(
|
||||
name="Nuclear Fuel",
|
||||
dimension="energy_storage",
|
||||
description="Enriched uranium fuel rods",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "nuclear_thermal", None, "provides"),
|
||||
Dependency("physical", "mass_kg", "500", "kg", "range_min"),
|
||||
Dependency("physical", "energy_density_wh_kg", "500000", "Wh/kg", "provides"),
|
||||
],
|
||||
)
|
||||
|
||||
@@ -118,11 +162,12 @@ def nuclear_reactor():
|
||||
def hydrogen_engine():
|
||||
return Entity(
|
||||
name="Hydrogen Combustion Engine",
|
||||
dimension="power_source",
|
||||
description="Hydrogen fuel cell",
|
||||
dimension="actuator",
|
||||
description="Hydrogen combustion engine",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "chemical_combustible", None, "requires"),
|
||||
Dependency("force", "power_density_w_kg", "1500", "W/kg", "provides"),
|
||||
Dependency("physical", "mass_kg", "30", "kg", "range_min"),
|
||||
Dependency("physical", "mass_kg", "25", "kg", "range_min"),
|
||||
],
|
||||
)
|
||||
|
||||
@@ -131,12 +176,41 @@ def hydrogen_engine():
|
||||
def ice_engine():
|
||||
return Entity(
|
||||
name="Internal Combustion Engine",
|
||||
dimension="power_source",
|
||||
description="Gas-powered engine",
|
||||
dimension="actuator",
|
||||
description="Spark-ignition engine",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "chemical_combustible", None, "requires"),
|
||||
Dependency("force", "power_density_w_kg", "1000", "W/kg", "provides"),
|
||||
Dependency("environment", "atmosphere", "standard", None, "requires"),
|
||||
Dependency("physical", "mass_kg", "50", "kg", "range_min"),
|
||||
Dependency("physical", "mass_kg", "40", "kg", "range_min"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def gasoline():
|
||||
return Entity(
|
||||
name="Gasoline",
|
||||
dimension="energy_storage",
|
||||
description="Liquid hydrocarbon fuel",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "chemical_combustible", None, "provides"),
|
||||
Dependency("physical", "mass_kg", "10", "kg", "range_min"),
|
||||
Dependency("physical", "energy_density_wh_kg", "1500", "Wh/kg", "provides"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def hydrogen():
|
||||
return Entity(
|
||||
name="Hydrogen",
|
||||
dimension="energy_storage",
|
||||
description="Compressed hydrogen gas",
|
||||
dependencies=[
|
||||
Dependency("energy", "energy_form", "chemical_combustible", None, "provides"),
|
||||
Dependency("physical", "mass_kg", "5", "kg", "range_min"),
|
||||
Dependency("physical", "energy_density_wh_kg", "600", "Wh/kg", "provides"),
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user