From 5f6a6a27d814ec8cf820599c6163108ca8e122d9 Mon Sep 17 00:00:00 2001 From: Giles Atkinson <“gatk555@gmail.com”> Date: Tue, 20 Jun 2023 09:50:06 +0100 Subject: [PATCH] Further fix for PWL bugs introduced by 9c71db3 (Fix for Bug #607) and partially fixed by 79c69e0 and 9c75367. This also fixes Bug #468 - "Bugs in src/spicelib/devices/vsrc/vsrcacct.c for PWL source." --- src/spicelib/devices/vsrc/vsrcacct.c | 4 ++++ src/spicelib/devices/vsrc/vsrcload.c | 1 + 2 files changed, 5 insertions(+) diff --git a/src/spicelib/devices/vsrc/vsrcacct.c b/src/spicelib/devices/vsrc/vsrcacct.c index 0be45f8e2..36994a837 100644 --- a/src/spicelib/devices/vsrc/vsrcacct.c +++ b/src/spicelib/devices/vsrc/vsrcacct.c @@ -172,7 +172,11 @@ VSRCaccept(CKTcircuit *ckt, GENmodel *inModel) period = end - here->VSRCcoeffs[here->VSRCrBreakpt]; + time -= + here->VSRCcoeffs[here->VSRCrBreakpt]; time -= period * floor(time / period); + time += + here->VSRCcoeffs[here->VSRCrBreakpt]; } else { here->VSRCbreak_time = ckt->CKTfinalTime; break; diff --git a/src/spicelib/devices/vsrc/vsrcload.c b/src/spicelib/devices/vsrc/vsrcload.c index a24bacc31..c68138eb1 100644 --- a/src/spicelib/devices/vsrc/vsrcload.c +++ b/src/spicelib/devices/vsrc/vsrcload.c @@ -318,6 +318,7 @@ VSRCload(GENmodel *inModel, CKTcircuit *ckt) period = end_time - here->VSRCcoeffs[here->VSRCrBreakpt]; + time -= here->VSRCcoeffs[here->VSRCrBreakpt]; time -= period * floor(time / period); time += here->VSRCcoeffs[here->VSRCrBreakpt]; } else {