Development
#ai
modelica
Modelica acausal equation-based multi-domain modeling via Wolfram Language. Chemputation-native simulation with automatic conservation laws. Lambda-Modelica bridge for string diagram semantics. Fixed point classification for 3-coloring/3-MATCH systems.
DeepseekModel
Curated skill
Quality Excellent · 78
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=plurigrid-asi-skills-modelica-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name modelica description Modelica acausal equation-based multi-domain modeling via Wolfram Language. Chemputation-native simulation with automatic conservation laws. Lambda-Modelica bridge for string diagram semantics. Fixed point classification for 3-coloring/3-MATCH systems. license MIT metadata {"trit":0,"source":"Wolfram/SystemModeler + Modelica Association","xenomodern":true,"stars":1417,"extensions":["LAMBDA_MODELICA_BRIDGE.md","FIXED_POINTS.md","NEIGHBOR_SKILLS.md","CONCOMITANT_SKILLS.md","modelica-lispsyntax-interleave.el"]} Modelica Skill: Acausal Multi-Domain Modeling Status : ✅ Production Ready + Triplet #2 + Lambda Bridge + Fixed Point Classification Trit : 0 (ERGODIC - coordinator) Color : #26D826 (Green) Principle : Constraints over causality + Stochastic Equilibrium Verification + String Diagram Semantics Frame : $0 = F(x, y, t)$ constraint satisfaction + Fokker-Planck convergence + Lambda↔Modelica bridge Overview Modelica is the chemputation-native modeling language. Unlike imperative programming ($y = f(x)$), Modelica defines constraints that the solver satisfies—directly analogous to thermodynamic settling and reaction-diffusion equilibria. Acausal Semantics : Equations, not assignments Conservation Laws : Automatic Kirchhoff at connectors Multi-Domain : Electrical, mechanical, fluid, thermal unified DAE Solving : Differential-algebraic equations with index reduction Core Framework Wolfram Language API (Modern v11.3+) (* Import and explore *) model = SystemModel["Modelica.Electrical.Analog.Examples.ChuaCircuit"]; model["Description"] model["Diagram"] model["SystemEquations"] (* Simulate *) sim = SystemModelSimulate[model, 100]; SystemModelPlot[sim, {"C1.v", "C2.v"}] (* Create from equations *) CreateSystemModel["MyModel", { x''[t] + 2*zeta*omega*x'[t] + omega^2*x[t] == F[t] }, t, <| "ParameterValues" -> {omega -> 1, zeta -> 0.1}, "InitialValues" -> {x -> 0, x' -> 0} |>] (* Connect components *) ConnectSystemModelComponents[ {"R" ∈ "Modelica.Electrical.Analog.Basic.Resistor", "C" ∈ "Modelica.Electrical.Analog.Basic.Capacitor", "V" ∈ "Modelica.Electrical.Analog.Sources.SineVoltage"}, {"V.p" -> "R.p", "R.n" -> "C.p", "C.n" -> "V.n"} ] (* Linearize for control design *) eq = FindSystemModelEquilibrium[model]; ss = SystemModelLinearize[model, eq]; (* Returns StateSpaceModel *) Key Concepts 1. Acausal vs Causal (Chemputation Alignment) Paradigm Semantics Example Causal (von Neumann) $y = f(x)$ output = function(input) Acausal (Modelica) $0 = F(x, y, t)$ v = R * i (bidirectional) Modelica's acausal nature means: Equations define relationships, not data flow Solver determines causality at compile time Same model works in multiple contexts 2. Connector Semantics (Conservation Laws) effort (voltage v) Port A ──────────────────── Port B ←─── flow (current i) ───→ Connection equations (automatic): Effort variables equalized : $v_A = v_B$ Flow variables sum to zero : $\sum i = 0$ (Kirchhoff) Domain Effort Flow Conservation Electrical Voltage $v$ Current $i$ $\sum i = 0$ Translational Position $s$ Force $F$ $\sum F = 0$ Rotational Angle $\phi$ Torque $\tau$ $\sum \tau = 0$ Thermal Temperature $T$ Heat flow $\dot{Q}$ Energy conservation Fluid Pressure $p$, enthalpy $h$ Mass flow $\dot{m}$ Mass/energy conservation 3. Modelica Standard Library 4.0.0 (* Explore domains *) SystemModels["Modelica.Electrical.*", "model"] SystemModels["Modelica.Mechanics.Translational.*"] SystemModels["Modelica.Thermal.HeatTransfer.*"] SystemModels["Modelica.Fluid.*"] Package Components Description Modelica.Electrical 200+ Analog, digital, machines Modelica.Mechanics 150+ Translational, rotational, 3D Modelica.Thermal 50+ Heat transfer, pipe flow Modelica.Fluid 100+ Thermo-fluid 1D Modelica.Blocks 200+ Signal processing, control Modelica.StateGraph 30+ State machines, sequencing Simulation API Basic Simulation (* Default settings *) sim = SystemModelSimulate["Modelica.Mechanics.Rotational.Examples.CoupledClutches"]; (* Custom time range *) sim = SystemModelSimulate[model, {0, 100}]; (* Parameter sweep (parallel execution) *) sims = SystemModelSimulate[model, 10, <| "ParameterValues" -> {"R.R" -> {10, 100, 1000}} |>]; Solver Methods SystemModelSimulate[model, 10, Method -> "DASSL"] (* Default, stiff DAEs *) SystemModelSimulate[model, 10, Method -> "CVODES"] (* Non-stiff ODEs *) SystemModelSimulate[model, 10, Method -> {"NDSolve", MaxSteps -> 10000}] Method Type Use Case "DASSL" Adaptive DAE General stiff (default) "CVODES" Adaptive ODE Mildly stiff "Radau5" Implicit RK Very stiff "ExplicitEuler" Fixed-step Real-time, simple "NDSolve" Wolfram Full NDSolve access Analysis Functions (* Find equilibrium *) eq = FindSystemModelEquilibrium[model]; eq = FindSystemModelEquilibrium[model, {"tank.h" -> 2}]; (* Constrained *) (* Linearize at operating point *) ss = SystemModelLinearize[model]; (* At equilibrium *) ss = SystemModelLinearize[model, "InitialValues"]; (* At t=0 *) ss = SystemModelLinearize[model, sim, "FinalValues"]; (* At end of sim *) (* Properties from StateSpaceModel *) Eigenvalues[ss] (* Stability check *) TransferFunctionModel[ss] (* For Bode plots *) Chemputation Patterns Pattern 1: Chemical Reaction Network (* A + B ⇌ C with mass action kinetics *) CreateSystemModel["Chem.AB_C", { (* Conservation: total moles constant *) A[t] + B[t] + C[t] == A0 + B0 + C0, (* Rate laws *) A'[t] == -kf * A[t] * B[t] + kr * C[t], B'[t] == -kf * A[t] * B[t] + kr * C[t], C'[t] == +kf * A[t] * B[t] - kr * C[t] }, t, <| "ParameterValues" -> {kf -> 0.1, kr -> 0.01, A0 -> 1, B0 -> 1, C0 -> 0}, "InitialValues" -> {A -> 1, B -> 1, C -> 0} |>] (* Find equilibrium concentrations *) eq = FindSystemModelEquilibrium["Chem.AB_C"]; Pattern 2: Thermodynamic Equilibration (* Two thermal masses equilibrating *) ConnectSystemModelComponents[ {"m1" ∈ "Modelica.Thermal.HeatTransfer.Components.HeatCapacitor", "m2" ∈ "Modelica.Thermal.HeatTransfer.Components.HeatCapacitor", "k" ∈ "Modelica.Thermal.HeatTransfer.Components.ThermalConductor"}, {"m1.port" -> "k.port_a", "k.port_b" -> "m2.port"}, <|"ParameterValues" -> { "m1.C" -> 100, "m2.C" -> 200, (* Heat capacities *) "k.G" -> 10 (* Conductance *) }, "InitialValues" -> { "m1.T" -> 400, "m2.T" -> 300 (* Initial temperatures *) }|> ] Pattern 3: Cat# Mapping Cat# Concept Modelica Concept Implementation Insertion site Connector Interface with effort/flow pairs Reaction Connection Effort equalization, flow summation Species Component Model with internal state and ports Conservation law Flow sum Automatic $\sum \text{flow} = 0$ Equilibrium FindSystemModelEquilibrium DAE constraint satisfaction Commands # Simulate model just modelica-simulate "Modelica.Electrical.Analog.Examples.ChuaCircuit" 100 # Create model from equations just modelica-create oscillator.m # Linearize and analyze just modelica-linearize model --equilibrium # Parameter sweep just modelica-sweep model --param "R.R" --values "10,100,1000" # Export to FMU for co-simulation just modelica-export model.fmu Integration with GF(3) Triads turing-chemputer (-1) ⊗ modelica (0) ⊗ crn-topology (+1) = 0 ✓ [Chemical Synthesis] narya-proofs (-1) ⊗ modelica (0) ⊗ gay-julia (+1) = 0 ✓ [Verified Simulation] assembly-index (-1) ⊗ modelica (0) ⊗ acsets (+1) = 0 ✓ [Molecular Complexity] sheaf-cohomology (-1) ⊗ modelica (0) ⊗ propagators (+1) = 0 ✓ [Constraint Propagation] Narya Bridge Type Verification Modelica simulations produce observational bridge types verifiable by narya-proofs: from narya_proofs import NaryaProofRunner # Simulation trajectory as event log events = [ { "event_id" : f"t {i} " , "timestamp" : t, "trit" : 0 , "context" : "modelica-sim" , "content" : { "state" : state}} for i, (t, state) in enumerate (simulation_trajectory) ] # Verify conservation runner = NaryaProofRunner() runner.load_events(events) bundle = runner.run_all_verifiers() assert bundle.overall == "VERIFIED" SystemModel Properties model["Description"] (* Model description *) model["Diagram"] (* Graphical diagram *) model["ModelicaString"] (* Source code *) model["SystemEquations"] (* ODE/DAE equations *) model["SystemVariables"] (* State variables *) model["InputVariables"] (* Inputs *) model["OutputVariables"] (* Outputs *) model["ParameterNames"] (* Parameters *) model["InitialValues"] (* Default initial conditions *) model["Components"] (* Hierarchical structure *) model["Connectors"] (* Interface ports *) model["Domain"] (* Multi-domain usage *) model["SimulationSettings"] (* Default solver settings *) Import/Export (* Import Modelica source *) Import["model.mo", "MO"] (* Export model *) Export["model.mo", SystemModel["MyModel"], "MO"] (* Export FMU for co-simulation *) Export["model.fmu", SystemModel["MyModel"], "FMU"] (* Import simulation results *)
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.