The idea of using a causal model to model the behaviour of a steady state circuit strikes me as unnatural. Doubly so for a simple linear circuit. Their behaviour can be well predicted by solving a set of equations. If you had to force me to create a causal model it would be:
Circuit description(topology, elements) → circuit state(voltage at nodes, current between nodes)
IIRC, this is basically how SPICE does it’s DC and linear AC analysis. The circuit defines a set of equations. Their solution gives the voltages and currents that describe the steady state of the system. That way, it’s easy to look at both mentioned counterfactuals, since each is just a change in the circuit description. The process of solving those equations is best abstracted as acausal, even if the underlying process is not.
This changes when you start doing transient analysis of the circuit. In that case, it starts to make sense to model the circuit using the state variables and to model how those state variables evolve. Then you can describe the system using diff equations and boundary conditions. They can be thought of as a continuous limit of causal DAGs. But even then, the state variables and the equations that describe their evolution are not unique. It’s just a matter of what makes the math easier.
Not that this takes away from your point that you need different abstractions to answer different queries. For instance, the mass and physical space occupied by the circuit is relevant to most mechanical design queries, but not to most electrical design queries.
The idea of using a causal model to model the behaviour of a steady state circuit strikes me as unnatural. Doubly so for a simple linear circuit. Their behaviour can be well predicted by solving a set of equations. If you had to force me to create a causal model it would be:
Circuit description(topology, elements) → circuit state(voltage at nodes, current between nodes)
IIRC, this is basically how SPICE does it’s DC and linear AC analysis. The circuit defines a set of equations. Their solution gives the voltages and currents that describe the steady state of the system. That way, it’s easy to look at both mentioned counterfactuals, since each is just a change in the circuit description. The process of solving those equations is best abstracted as acausal, even if the underlying process is not.
This changes when you start doing transient analysis of the circuit. In that case, it starts to make sense to model the circuit using the state variables and to model how those state variables evolve. Then you can describe the system using diff equations and boundary conditions. They can be thought of as a continuous limit of causal DAGs. But even then, the state variables and the equations that describe their evolution are not unique. It’s just a matter of what makes the math easier.
Not that this takes away from your point that you need different abstractions to answer different queries. For instance, the mass and physical space occupied by the circuit is relevant to most mechanical design queries, but not to most electrical design queries.