resistor_bridge/
resistor_bridge.rs1use reda_spice::{netlist::Circuit, simulate::ngspice::NgSpiceShared};
2use reda_unit::u;
3
4fn main_result() -> Result<(), Box<dyn std::error::Error>> {
6 let mut circuit = Circuit::new("Resistor Bridge");
7
8 circuit.add_dc_voltage("input", "1", "0", u!(10 V));
9 circuit.add_resistor("1", "1", "2", u!(2 kΩ));
10 circuit.add_resistor("2", "1", "3", u!(1 kΩ));
11 circuit.add_resistor("3", "2", "0", u!(1 kΩ));
12 circuit.add_resistor("4", "3", "0", u!(2 kΩ));
13 circuit.add_resistor("5", "3", "2", u!(2 kΩ));
14
15 let simulate = NgSpiceShared::default()?;
16 let mut simulator = circuit.simulator(simulate);
17 let analysis = simulator.run_op()?;
18
19 for (name, node) in analysis.nodes.iter() {
20 println!("Node {}: {}", name, node)
21 }
22
23 Ok(())
24}
25
26fn main() {
27 if let Err(e) = main_result() {
28 eprintln!("{}", e);
29 }
30}