const anodeTerminalUid = "9b43137e-5678-604b-097b-07055b46b0c6";
const cathodeTerminalUid = "8d0d6e5c-9570-643c-7237-cd6c714368b5";
const controlTerminalUid = "4996d8b2-7165-4ebb-aee8-b9368033c95a";
const anodeTerminal = flux.getNodeById(anodeTerminalUid, "elementTerminal");
const cathodeTerminal = flux.getNodeById(cathodeTerminalUid, "elementTerminal");
const controlTerminal = flux.getNodeById(controlTerminalUid, "elementTerminal");
if (!anodeTerminal || !cathodeTerminal || !controlTerminal) {
throw new Error("Oops! Couldn't find terminals");
}
const voltagePeakToPeakOutput = flux.createOutputNode("vptop");
voltagePeakToPeakOutput.name = "Vp-p";
voltagePeakToPeakOutput.unit = "V";
const currentOutput = flux.createOutputNode("current");
currentOutput.name = "Current";
currentOutput.unit = "A";
function castPropertyValue(value: Readonly<PropertyValue>): number | undefined {
return value === "" ? undefined : Number(value);
}
// Function to set the simulation model, this will run at setup and before every step
function setModel(event: SimulatorLifeCycleEventContext) {
if (!controlTerminal) return; // no undefined controlTerminal
// Get properties
const initialVoltage = Number(flux.properties.find((prop) => prop.name === "Initial Voltage")?.value ?? 0);