Replace Python numerical kernels with native C execution
This commit is contained in:
1 parent
48da6be21c
commit
3b38f73fe0
227 files changed
+16801
-75499
No files matched your search
@@ -9,10 +9,9 @@ from app.simulation.components.amesim.mechanical.translational import (
|
||||
)
|
||||
from app.simulation.components.amesim.signals.sources import AmesimStep0
|
||||
from app.simulation.core.medium import IdealGasMedium
|
||||
from app.simulation.solvers.solver import SolveIVPConfig
|
||||
from app.simulation.systems.generic import (
|
||||
from app.simulation.config import SolveIVPConfig
|
||||
from app.simulation.sampling import (
|
||||
SimulationSampleTimeError,
|
||||
simulation_preparation_issues,
|
||||
simulation_sample_times,
|
||||
)
|
||||
from app.simulation.systems.network import SimulationNetwork
|
||||
@@ -193,35 +192,17 @@ class SimulationSampleTimeSafetyTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class PhysicalIslandSafetyTests(unittest.TestCase):
|
||||
def test_signal_fanout_does_not_hide_an_unanchored_physical_island(self) -> None:
|
||||
issues = simulation_preparation_issues(
|
||||
_fanout_mechanical_network(second_island_has_storage=False)
|
||||
)
|
||||
island_issues = [
|
||||
issue
|
||||
for issue in issues
|
||||
if issue.code == "ALGEBRAIC_ISLAND_HAS_NO_STORAGE"
|
||||
]
|
||||
|
||||
self.assertEqual(len(island_issues), 1)
|
||||
self.assertIn("force_b", island_issues[0].message)
|
||||
self.assertIn("zero_b", island_issues[0].message)
|
||||
self.assertNotIn("command", island_issues[0].message)
|
||||
self.assertNotIn("mass_a", island_issues[0].message)
|
||||
|
||||
def test_signal_fanout_between_two_anchored_physical_islands_is_allowed(
|
||||
self,
|
||||
) -> None:
|
||||
issues = simulation_preparation_issues(
|
||||
_fanout_mechanical_network(second_island_has_storage=True)
|
||||
)
|
||||
|
||||
self.assertNotIn(
|
||||
"ALGEBRAIC_ISLAND_HAS_NO_STORAGE",
|
||||
{issue.code for issue in issues},
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
class NativePhysicalIslandSafetyTests(unittest.TestCase):
|
||||
def test_unanchored_force_island_is_rejected(self):
|
||||
from app.simulation.native_codegen.compiler import NativeCapabilityError, compile_native_program
|
||||
with self.assertRaises(NativeCapabilityError):
|
||||
compile_native_program(_fanout_mechanical_network(second_island_has_storage=False))
|
||||
|
||||
def test_two_anchored_islands_are_supported(self):
|
||||
from app.simulation.native_codegen.compiler import compile_native_program
|
||||
self.assertEqual(len(compile_native_program(_fanout_mechanical_network(second_island_has_storage=True)).state_keys), 4)
|
||||
Reference in new issue
Block a user