Commit Graph

7438 Commits

Author SHA1 Message Date
Holger Vogt aaaad70991 Previous AM was buggy in V(I)SRC: Update to amplitude modulation
with corrected equation.
2024-01-06 23:09:27 +01:00
Holger Vogt 88d0727d3f In PS compat mode we only have 2 nodes in a diode,
but still allow self heating diode with ngspice syntax.
2024-01-06 11:51:11 +01:00
Holger Vogt ace932e1b9 Patches provided by Carsten Schoenert: Misspellings, File access 2023-12-31 13:51:05 +01:00
Holger Vogt 88844ba74d Prevent vectors carrying the E POLY source current from being disaggregated 2023-12-31 13:32:45 +01:00
Holger Vogt dd7b9ff273 Avoid memory crash when reading old VDMOS models.
Enable both old and current model format.
2023-12-30 22:52:41 +01:00
Holger Vogt ace235da04 Remove ADMS from build process 2023-12-29 16:53:39 +01:00
Holger Vogt f99a137eb3 Patch for snprintf provided by Marco Atzeri 2023-12-29 10:59:56 +01:00
Holger Vogt 902a62d2f4 win_time.c as extra distribution, used only by MSVC 2023-12-27 19:41:13 +01:00
Holger Vogt f8e77d08d0 More headers distributed 2023-12-27 17:12:15 +01:00
Holger Vogt f4c560ba71 Add more KLU headers to enable their distribution 2023-12-27 16:42:37 +01:00
Holger Vogt a08f1046e4 Add KLU headers to enable their distribution 2023-12-27 16:18:36 +01:00
Holger Vogt 009249eafe Short title 2023-12-27 12:27:31 +01:00
Holger Vogt c1effe3b33 Just a hack to avoid a crash during sensitivity analysis:
Exclude parameter RCO from sens code, if not given,
as sens sets mods->BJTintCollResistGiven to TRUE, which fails due to
missing memory allocation for the extra nodes.
2023-12-27 12:26:56 +01:00
Holger Vogt ca7c6cce71 Avoid crash, when sensitivity analysis is called 2023-12-27 11:32:31 +01:00
Holger Vogt f307586d89 Formatting 2023-12-27 10:42:07 +01:00
Holger Vogt db5e5b08eb Don't switch display to "op", if called from a dc simulation. 2023-12-22 18:16:26 +01:00
Holger Vogt 03905433bb If compatmode hs is set, don't run an extra iteration with
differing mode settings, but go directly to CKTop().
If other or none compat modes, keep existing behavior, as
for example CIDER example may otherwise slow down significantly.

This is to keep dc sim in accordance with other simulators.
2023-12-22 17:21:55 +01:00
Holger Vogt 37944bd7c4 Preliminary fix to bug 650
Don't omit replacement, when independent nested subcircuit has been checked.
FIXME: Better use the cards level parameter.
2023-12-22 17:18:43 +01:00
Holger Vogt 4671b588b6 Update comment 2023-12-22 17:14:43 +01:00
Holger Vogt 5154fd3fd7 Allways export function ngCM_Input_Path, independently from XSPICE
Update comment
2023-12-22 17:14:22 +01:00
Holger Vogt d1abc8f6c7 typo 2023-12-22 13:11:21 +01:00
Holger Vogt c53b32ffa8 Plug a potential memory leak 2023-12-19 15:30:44 +01:00
Brian Taylor 8f52a67786 Fix set but not used warning. 2023-12-19 14:28:29 +01:00
Giles Atkinson af31904f99 The previous fix for Bug #467 - ".OPTION INTERP has accuracy issue"
(359e3d46) updated variable timeold inside a loop so that
all interpolations after the first caused division by zero.
That caused the xspice/delta-sigma example to fail.
Set the variable once at the end of the function.
2023-12-19 14:27:33 +01:00
Giles Atkinson ffcf3b24d9 Improve efficiency and irreversible CM support in EVTcall_hybrids() by
halting calls to code models as soon as the timestep is chenged.
This should have been included in 508fad0f55.
2023-12-19 14:26:56 +01:00
Holger Vogt 9a50f8b749 typo 2023-12-12 17:24:23 +01:00
Holger Vogt ce8f6c5017 prepare ngspice-42 2023-12-12 17:08:58 +01:00
Holger Vogt 2e56f3a063 Add short description of the new interface functions
ngSpice_LockRealloc(void) ad ngSpice_UnlockRealloc(void)
2023-12-12 17:02:19 +01:00
Holger Vogt 7f30055f22 Prevent crash if port number is less than 1. 2023-12-12 16:29:32 +01:00
Holger Vogt 45850c07dc Don't silently accept wrong user input (missing nodes, values).
Check for at leat 4 tokens (name, n1, n2, val/model/...).
If the instance has not been set up correctly, bail out, prevent crash.
2023-12-12 16:29:28 +01:00
Holger Vogt 7cd4f003ff typo 2023-12-12 16:29:23 +01:00
Holger Vogt 6459fed460 Don't prescribe a different resistance value if the user has given one > 0. 2023-12-12 16:28:38 +01:00
Holger Vogt 732c12c93f Remove another potential crash if buggy user input 2023-12-09 15:43:19 +01:00
Holger Vogt c69018fe82 Enable measurements with ?-sweep (v, i, temp, or res).
Improve error messages.
Prevent crash is compüdata is not available.
Add to examples for measure failures.
2023-12-09 15:43:15 +01:00
dwarning 6ad0a6ad38 hisim2: allow compile w/o NEWCONV defined 2023-12-09 15:43:11 +01:00
dwarning a98cfcd8cb allow compile w/o NEWCONV defined 2023-12-09 15:43:00 +01:00
Giles Atkinson 3cf8fe8c41 Stop after last data point, preventing read overrun of nscale. 2023-12-01 12:26:58 +00:00
Giles Atkinson d82f948832 Fix a crash found by Brian Taylor: when .plot attempts to plot digital
node history, interpolation may produce an infinite value at digital edges.
Remove vertical edges when interpolating and make some other improvements:
do not calculate a polynomial approximation for unused frames;
center the target x-value in the frame; and do not propogate a reduction
in degree to later frames.
2023-11-30 17:23:32 +00:00
Giles Atkinson c18447f9f5 Add the support files for co-simulation with Verilog code
compiled by Verilator.  Also add script files to Visual Studio builds
that are already installed by the Makefile builds.
2023-11-27 20:55:59 +00:00
Giles Atkinson a92c569b72 Prevent some strings being mis-recognised by strstr(), including
one that causes a false error message from the vlnggen script.
2023-11-27 17:17:21 +00:00
Giles Atkinson 597268cc26 Treat input files names passed a start-up the same as those entered
as commands or called as scripts: search for them using $sourcepath.
2023-11-27 17:16:55 +00:00
Giles Atkinson 07ce9c788e Recognise *ng_script_with_params" in the first line of the first
program input file to mean that the file is a pure interpreter
script that receives any remaining command arguments.
In winmain.c ensure that the argv array is NULL-terminated
and tidy some code.
2023-11-27 17:06:39 +00:00
Giles Atkinson 89851872ed When substituting interpreter variables, allow '$' to be part of
the variable expresstion only within '[]' or '()'. That lets
forms like "$a$b" to be treated as two substitutions, not one.
2023-11-27 15:13:31 +00:00
Giles Atkinson 3ba314d4bc New interpreter commands strstr, strslice, fopen, fread and fclose. 2023-11-27 14:58:01 +00:00
Giles Atkinson 566e2938f4 Add XSPICE code model d_cosim, a generic adaptor for digital cosimulation. 2023-11-27 14:50:21 +00:00
Giles Atkinson 12fe7b90c4 Add new code model function cm_irreversible(). This may only be
called from an XSPICE code model's INIT call and has three effects:
the instance is treated as "hybrid" even when it does not use both
port types; its position in the hybrids array is adusted; and it
is explicitly notifed when called just befoore the end of an
analog time-step.
2023-11-26 18:30:53 +00:00
Giles Atkinson 34e6c4abea Convert XSPICE's hybrid_index array to instance pointers.
That simplifies code and will be needed for irreversible code model support.
2023-11-26 18:29:23 +00:00
Giles Atkinson 508fad0f55 In dctran.c, call EVTcall_hybrids() (which then calls a subset of
code model instances) only when the current timestep was successful.
That is efficient and means that code models may rely on such calls,
for example a co-simulator may safely advance to the end of the timestep.
The function cm_irreversible() that is mentioned in a comment will be
added in a later commit.
2023-11-26 18:29:03 +00:00
Holger Vogt 3d1cbf93ee Add a predifined variable 'skywaterpdk' to speed up circuit
loading and parsing.
If set, it removes quoting tokens for params. This requires
that Skywater PDK does adequately stick to the ngspice syntax
to put params in between braces. As far as tests go, it does.
It also set the number of nodes for MSO devices to 4, so no lengthy
search is required.
2023-11-23 18:29:48 +01:00
Holger Vogt dd58b07949 Initialize the new mutex vecreallocMutex 2023-11-19 12:37:29 +01:00
Holger Vogt 1849a8d220 Add functions ngSpice_LockRealloc and ngSpice_UnlockRealloc
to lock reallocing output vectors, e.g. during reading the
vecs for plotting.
2023-11-19 12:05:18 +01:00
Holger Vogt e87651e27f Update to comments, restrict mutex definitions to shared ngspice 2023-11-19 12:05:10 +01:00
Holger Vogt 3619041e26 Add new lock for realloc of vectors 2023-11-19 12:05:01 +01:00
Holger Vogt 1db8eff25c Write message only once. 2023-11-19 10:46:19 +01:00
Holger Vogt ecf4f819dc typo 2023-11-19 10:44:42 +01:00
Holger Vogt 86e991515e Enable compiling with MINGW under MS Windows 2023-11-18 20:09:49 +01:00
Holger Vogt 4d4f226a83 Prevent crash, when vector is defined, but still empty. 2023-11-18 17:17:04 +01:00
Holger Vogt e376c0e5c6 Eanble op or ac op (operating point), when selfheat is on.
op for tran has been o.k.
Fixme: preliminary fix or hack.
2023-11-18 17:16:19 +01:00
Holger Vogt b62bb20e6f Increase the allowable node name length from 24 to 256.
Enable safe copying, no user induced buffer overflow.
2023-11-18 10:55:19 +01:00
Holger Vogt 10756111bf Fix a bug when deleting the memory. With the first call
to mem_delete() all the hash table is deleted, a second
call to mem_delete() does not have any further effect, so
has to be avoided.
2023-11-18 09:58:30 +01:00
Holger Vogt e57979d15d Plug two memory leaks introduced by
2bbadc608 ("Use a hash table glonodes to prevent
double or multiple entries in global node table
global_nodes", 2023-11-17)
2023-11-17 23:50:59 +01:00
Holger Vogt 70e366021b Generate seed numbers from a microseconds clock, not a seconds clock 2023-11-17 18:35:21 +01:00
Holger Vogt 81bb886c71 Replace array global_nodes by hash table glonodes:
Save each global node only once
Search for global nodes hash table (much faster than scanning the list repeatedly).
Remove limit for amount of global nodes.
2023-11-17 17:02:06 +01:00
Holger Vogt 2bbadc6085 Use a hash table glonodes to prevent double or multiple entries
in global node table global_nodes
2023-11-17 13:58:57 +01:00
Holger Vogt d060cb82af typo 2023-11-17 13:57:39 +01:00
Holger Vogt 0735b8d0a5 fix previous commit on repeating error messages 2023-11-15 22:54:53 +01:00
Holger Vogt 22a10c0e44 typo 2023-11-15 22:54:06 +01:00
Holger Vogt 55ba927973 If nan occurs during op calculation, issue the warning
no more than 10 times.
2023-11-14 16:57:14 +01:00
Holger Vogt 4da3dc51fd If compatmode ps or lt: add a series resistance (100µOhms) to
diodes, when RS is not given or 0:
Improves convergence in behavioural models for op evaluation.
2023-11-14 16:56:31 +01:00
Holger Vogt 29bfe94318 Exclude some code under a unified #undef REM_USED 2023-11-13 12:32:15 +01:00
dwarning 2cf2693706 few code cleanings 2023-11-12 17:04:36 +01:00
Holger Vogt 2a005292db Sparse 1.3 is the matrix solver if no option (sparse or klu) is given.
KLU is selected by 'option klu'
If both 'option klu' and 'option sparse' are given,
the last one executed determines the solver.
'option sparse=0' de-selects spares, i.e. selects klu.
'option klu=0' de-selects klu, selects sparse.
'option klu=1' has the same meaning as 'option klu'.
'option sparse=1' has the same meaning as 'option sparse'.
2023-11-12 16:32:40 +01:00
Holger Vogt c87df54f24 Remove unused global variable cp_dol.
This also prevents a gcc 13 bug, as cp_dol has been set to '\0'
by -O2 optimization (see
https://stackoverflow.com/questions/77407156/s-0-being-optimized-out-possible-gcc-13-bug-or-some-undefined-behaviour)
2023-11-11 10:39:51 +01:00
Giles Atkinson 359e3d4609 Fix Bug #467 - ".OPTION INTERP has accuracy issue". 2023-11-09 12:09:05 +00:00
Giles Atkinson 10386ee3e3 Commit [35d338]ngspice partly reverted commit 423f9a9db to fix deletion
of source files if make was accidentally used in the source tree.
That caused the original bug to return.  Fix the problem by deleting
the generated source files by name (no such files exist in source.
Also make the generated files depend on cmpp, making 'make clean'
unnecessary after a chenge to cmpp.
2023-11-09 12:08:02 +00:00
Giles Atkinson f6f7319792 Add null-pointer checks to some code that crashed when trying
to .print results from a non-existent analysis.  Also remove the
troublesome .plot and .print lines from two examples.
2023-11-09 12:07:31 +00:00
Giles Atkinson 4228ba6e8a Ignore end-of-line comments in quoted strings. 2023-11-09 12:06:34 +00:00
Holger Vogt 0a087809d6 If both node names are the same, just print them once in the error message. 2023-11-08 13:12:06 +01:00
Brian Taylor 0555c5d9c7 Make previous KLU support check more transparent. 2023-11-08 11:49:28 +01:00
Brian Taylor 295f212de8 When CIDER is detected, until KLU works with CIDER, print Error: CIDER simulation is not (yet) supported with 'option klu'. Use 'option sparse' instead. and then call controlled exit(1). 2023-11-08 11:49:22 +01:00
dwarning 35d338f256 partly revert commit 423f9a9db - don't remove xspice/icm .c files 2023-11-08 07:59:36 +01:00
Holger Vogt d27b888f13 Noise simulation is buggy when using the KLU solver. Thus for now it is disabled.
Use 'option sparse' instead.
2023-11-06 15:03:09 +01:00
dwarning 4e1452cdb7 rm compiler warnings 2023-11-04 19:36:31 +01:00
Pascal Kuthe 5223f4b27d fix(hicuml2): ensure flicker noise power is always stored in state vec 2023-11-04 19:36:30 +01:00
Pascal Kuthe c21f87051a always compute osdi noise powers
ngspice will reuse operating points for noise analysis so we can not trust
the mode flags
2023-11-04 19:36:30 +01:00
Pascal Kuthe f66e0bf2ac implement osdi noise support 2023-11-04 19:36:30 +01:00
Brian Taylor 04c68d5f30 Cleanup child processes on Windows VisualC and Mingw. On Linux those processes quit when ngspice quits. 2023-10-28 19:45:24 +02:00
Brian Taylor 4219efb5d5 Make it explicit that null output ports are not allowed. The output port vector bounds are always >= 1. 2023-10-28 19:43:46 +02:00
Brian Taylor c83d11c9c0 Call cm_cexit() to prevent the simulator running when d_process initialization errors occur. 2023-10-28 19:43:23 +02:00
Holger Vogt 21761207bc Change license to 3-clause BSD (see
https://sourceforge.net/p/ngspice/ngspice/merge-requests/6/?limit=25#fd4f/73e6)
2023-10-28 14:55:13 +02:00
Brian Taylor 09f070f582 Error handling improvements in cfunc.mod. Ensure that d_process.h wiil always respond to version and interface checks sent from sendheader. This is needed so that the pipe reads in sendheader do not cause Windows to hang when the interface version and in/out counts do not match. This hang was the cause of errors not being reported and the Windows gui hanging. Startup and header checks are now detected in cm_d_process, and the simulator will run but with runtime errors since a d_process model cannot be completely instantiated after initial errors. It would be good to find a means of gracefully halting the simulation run. 2023-10-28 11:00:33 +02:00
Brian Taylor 8c72a76844 Another attempt at clean up of error handling and reporting. It's OK on limux and cygwin, but Windows VisualC is being stubborn. I would prefer not to have to call exit(1) just for Windows, since then nothing is reported and the gui disappears in a puff of smoke. Even without the exit calls nothing gets reported with the Windows gui which will hang when there are errors detected by d_process. 2023-10-28 11:00:28 +02:00
Brian Taylor 4eae039779 Add modifications note. 2023-10-28 11:00:23 +02:00
Brian Taylor 4530cde8e2 Use Xspice cm_message_send to report errors rathen than printing to stderr and calling exit. When a d_process model has errors found in start(), sendheader(), and dprocess_exchangedata() these are reported, but if the model is run a SIGINT is raised. There must be a better way of stopping the simulator. 2023-10-28 11:00:18 +02:00
Brian Taylor df28fabc42 Restore the deleted unused params to be backword compatible. Handle the case where the d_process instance has a null in vector, so that N_din is zero. This allows the model to be just a pattern generator. Add include to cmproto.h to avoid a forward ref. to an enum type. 2023-10-28 11:00:03 +02:00
Brian Taylor 307ba1985b Remove unused reset_state param; do not allow null in and out, so there is at least 1 input and 1 output. 2023-10-28 10:59:52 +02:00
Brian Taylor 7820940be3 Remove the unused reset_delay param. 2023-10-28 10:59:42 +02:00
Brian Taylor e762047fc2 Add array bounds check, fix typos. 2023-10-28 10:59:34 +02:00
Brian Taylor 022a340ddb Fix VisualC and Mingw compiler warnings. 2023-10-28 10:59:11 +02:00
Brian Taylor cccb4a1559 Add callback to free process memory. 2023-10-28 10:58:39 +02:00
Brian Taylor 33780055ee Add MODIFICATIONS note, cleanup white space. 2023-10-28 10:58:28 +02:00
Brian Taylor 5c4352d02f Add __MINGW64__ defines for builds on mingw with msys. 2023-10-28 10:58:15 +02:00
Brian Taylor 3bb6e86015 Add Windows Visual Studio support for the Isotel d_process xspice digital model. The Isotel mixedsim-master/examples/embedded/motorforce C code needs to have minor changes for _MSC_VER defines, and are not included with this commit. The changes relate to using #pragma pack(push, 1)...#pragma pack(pop) around some structs, and setting stdin/stdout in binary mode. It is doubtful that the cfunc.mod will compile on mingw or cygwin since I don't know if they support pipe/fork/exec/spawn calls. The code builds and runs on Windows, Linux, and MacOS. In the future, Giles Atkinson is looking at allowing Xspice models to load shared libraries (.dll, .so) which will avoid creating and communicating with an external program. 2023-10-28 10:58:06 +02:00
Holger Vogt efdf332061 Prevent a crash if hash model table was not generated,
e.g. due to missing valid models.
2023-10-27 23:13:41 +02:00
Holger Vogt 10d7297798 Add cm_cecit(). If the input file could not be opened, stop ngspice. 2023-10-21 15:52:10 +02:00
Holger Vogt 19ebfb1887 Add a code model function cm_exit(const int exitcode).
This function calls controlled_exit(exitcode) to shut
down gracefully.
2023-10-18 22:46:27 +02:00
Holger Vogt f26dda8616 Formatting 2023-10-18 17:44:56 +02:00
Holger Vogt 39443fafdd Removing unused models takes much more time than keeping them
for large circuits.

Probably a hash table may help here (t.b.d.).
2023-10-18 14:36:08 +02:00
Holger Vogt 8ef0aece58 During setup of the models thre have been search scans in the
linked model list modtab. The time used here grows approx.
quadratically with the number of models. If the numbers get large,
e.g. with the IHP Open PDK, setup time make simulation impractical.
Therefore the linked list modtab has been enhanced by a hash table
modtabhash, which allows linear search time and makes simulation
of a 200k transistor circuit with IHP PDK possible. Already
the setup time for 15k transistor circuits has been reduced.
2023-10-18 14:34:16 +02:00
Holger Vogt 9702557f81 Evaluate function gauss() in B sources. This is required when
in .model files the tokens 'temper' and gauss() coexist, because
then the B Source function parser is applied.
2023-10-16 17:53:58 +02:00
Holger Vogt eb36084700 re-formatting (indentation, tabs removed) 2023-10-11 00:08:55 +02:00
Holger Vogt 9edf34495e Don't say 'issue in line no. 0', as this 'info' does not tell
where the line with position 0 really is in the input deck.
2023-10-09 23:19:30 +02:00
Holger Vogt 7c3cb8169c This is a re-write of the PWM generator.
It is modelled according to the new d_OSC by Giles Atkinson.
Here frequency is fixed and duty cycle is controlled by an
analog input.
2023-10-07 17:13:55 +02:00
Holger Vogt ecb416b800 This patch fixes a bug when shared library uses XSPICE:
Don't subtract delta twice, when breakpoint is active
and step is rejected.
https://sourceforge.net/p/ngspice/patches/106/
Thanks to Vyacheslav Shevchuk
2023-10-07 17:10:31 +02:00
Holger Vogt 9944a4869f typo 2023-10-07 13:36:56 +02:00
Holger Vogt 53315ed764 Prevent crash when no input file given. 2023-10-05 00:19:51 +02:00
Holger Vogt 4f79105b06 Add comment 2023-10-02 10:07:52 +02:00
Holger Vogt 233f9daba4 Remove unused instance parameter ic (initial condition of controlling source). 2023-10-01 10:51:31 +02:00
Holger Vogt 28b495318d Update to command 'wrnodev':
Prevent crash if tran is not (yet) run.
Open output file only when data are available.
Enhanced comment and warning message.
2023-09-28 10:05:31 +02:00
Holger Vogt e449c894ce Prepend title line by '*' if printed by 'listing r'.
This allows skipping all pre-processing.
2023-09-27 15:51:16 +02:00
Holger Vogt 76f837b0b7 skip all pre-processing for expanded input files created by 'listing r' 2023-09-27 15:49:37 +02:00
Giles Atkinson 2790fd68bb Make the special "noglob" variable work. To preserve previous behaviour
change the default value from true to undefined (meaning false).
Also fix a misleading comment in glob.c.
2023-09-25 10:54:13 +02:00
Giles Atkinson a70e708114 Make special interpreter variable "noglob" behave as documented:
globbing is off by default.  An incompatible change, but previous
behaviour can be restored by "unset noglob" in .spiceinit.
2023-09-23 17:03:34 +02:00
Giles Atkinson 41c61604c5 Handle SIGTTIN and SIGTTOU on Unix-like OSs with X11 graphics.
That makes it possible to push ngspice into the background while
plot windows are open: the windows remain responsive.
Discussion on ngspice-users, starting 2023-09-01,
title: "`quit` in Interactive Mode."
Also restore terminal state when forcing exit with SIGINT (control-C).
2023-09-23 17:03:24 +02:00
Giles Atkinson 588116af48 Fix a bug in the "help" command. Some commands have no action function,
so the function pointer should not be used to detect the end of the table.
Use the command name instead.
2023-09-23 17:03:19 +02:00
Giles Atkinson 423f9a9db2 Fix a build bug for XSPICE: files generated for code models are
not removed when doing 'make clean' from release/src/xspice or above.
2023-09-23 17:03:09 +02:00
Holger Vogt f3eb46e76d Fix bug in fprintf 2023-09-23 16:45:35 +02:00
Holger Vogt b034332e84 Improve warning message during evaluating .probe 2023-09-19 14:57:22 +02:00
Giles Atkinson 62471ecede Fix two bugs in cmpp: an unmatched right bracket in cfunc.mod
causes an infinite parsing loop (mod_yacc.y) and XSPICE macros
are replaced in string literals (mod_lex.l).
2023-09-16 00:19:36 +02:00
Holger Vogt dbc5042263 Prevent a crash if port cntrl is set to NULL 2023-09-15 23:42:08 +02:00
Holger Vogt 01bdd44ef9 Modify the previous commit a616a0abe:
no spaces in the first column
2023-09-15 23:41:12 +02:00
Vogt a616a0abe3 Add variable wr_onspace to allow printing the vetor name with
one space delimiter
2023-09-14 15:22:14 +02:00
Holger Vogt daa58f4125 Fix previous commit [acb7f2]
Allow frequency 0 Hz (make check will do agian).
2023-09-11 22:48:50 +02:00
Holger Vogt acb7f2cd97 Make .ac error messages more verbose, prevent some crash,
enable default values.
2023-09-11 17:42:38 +02:00
dwarning 4368790c5d remove compiler warning wrt. prototypes 2023-09-11 14:50:27 +02:00
Holger Vogt b7993bb530 Formatting cktpzstr.c 2023-09-11 14:28:49 +02:00
Holger Vogt dfeb0bdb4e Improve error message on obsolete dot command 2023-09-11 14:28:20 +02:00
Holger Vogt 64c29e667e Improve error message on unimplemented dot command 2023-09-11 12:02:59 +02:00
Holger Vogt a6d5ce8ea6 Some KLU warnings are useless for the normal user, as she or he
does not have any means to further analyze or repair the issue:
Warning: KLU ReFactor failed. Factoring again...
Warning (ReFactor Complex): KLU Matrix is SINGULAR
    Numerical Rank: %d\n
    Singular Node: %d\n
So print these messages only in debug mode.
2023-09-10 14:41:16 +02:00
Holger Vogt 64307ba907 Add a title line to 'listing r', so the resulting output may be
re-loaded by the 'source' command.
2023-09-10 13:44:18 +02:00
Holger Vogt 9d84138216 Remove memory leak by not mallocing unused node_ids.
Remove some compiler warnings.
2023-09-09 23:35:54 +02:00
Holger Vogt 3b89410b8f Slight cosmetics in comment. 2023-09-09 23:34:49 +02:00
Brian Taylor 492bb64d92 By default, use the shortest typical delay estimate. This makes the digi_74LS90_74LS42.cir testcase for bug641 behave almost the same as MicroCap 12. In ngspice and MicroCap, the only signal with a glitch is not_y8. The other not_* signals look the same. Setting ps_use_mntymx in .spiceinit will change the delay estimates. See the function set_u_devices_info in src/frontend/udevices.c for the various settings of ps_use_mntymx. 2023-09-09 23:22:06 +02:00
Holger Vogt 7a646c0a12 If 'strict_errorhandling' is set, bail out if operating point is not found 2023-09-09 18:38:09 +02:00
Holger Vogt ad23146544 Don't check continuously for autostop, only when option flag is set
This speeds up simulations with simple device evaluation, but many
time stepps.
2023-09-09 18:37:13 +02:00
Holger Vogt 0f14c690d5 Stat. functions: safeguard against divide by zero, return nominal value 2023-08-26 10:15:08 +02:00
Holger Vogt 8837132f29 Fix d0fc344bf
("Shorten the ngspice message when performing operating point evaluation.
 The average user often complained about useless 'info'.
 The old output is now available when 'set ngdebug' in .spiceinit.",
 2023-08-19)
Return with 0 if optran has been successful.
2023-08-20 00:11:39 +02:00
Holger Vogt d5ceced24d We are developing towards ngspice-42 2023-08-19 23:54:36 +02:00
Holger Vogt d0fc344bf9 Shorten the ngspice message when performing operating point evaluation.
The average user often complained about useless 'info'. The old output
is now available when 'set ngdebug' in .spiceinit.
2023-08-19 23:42:34 +02:00
Holger Vogt c0d73dcd6f Fix bug 642 by replacing strstr() by search_plain_identifier() 2023-08-19 23:14:26 +02:00
Holger Vogt 750d92c493 Fix a bug, not finding any instance parameters for PSP or R2_CMC
If already aligned, return input value, not 0.
2023-08-16 11:14:26 +02:00
Holger Vogt adc645d8e9 Fix intro comment: NDEV is no longer supported in ngspice 2023-08-16 11:14:26 +02:00
Holger Vogt c11613d1f7 Fix some memory leaks (Patch provided by Brian Taylor) 2023-08-16 11:14:25 +02:00
Holger Vogt 4864f0a118 Remove crash in CIDER example meclgate.cir 2023-08-16 11:14:25 +02:00
Pascal Kuthe 499634df47 integrate OSDI with KLU 2023-08-16 11:14:25 +02:00
Francesco Lannutti 05aa9f0927 Better fix for previous commit 2023-08-16 11:14:24 +02:00
Francesco Lannutti 13e74751cc Fixed a MLK for XSPICE and commented out an unused array 2023-08-16 11:14:24 +02:00
Francesco Lannutti cab5e8cd37 Added the case of VSRCport to VSRC model for KLU 2023-08-16 11:14:24 +02:00
Holger Vogt d658e0427c Enable compilation with MSVC (alignof seems to be available only for C++) 2023-08-16 11:14:24 +02:00
Francesco Lannutti b08eb2266a Added initial KLU support for node collapsing 2023-08-16 11:14:24 +02:00
Francesco Lannutti 470cd4a514 Fixed KLU SINGULAR matrix handling and messaging 2023-08-16 11:14:24 +02:00
Francesco Lannutti d68e83be78 Fixed VBIC model for KLU
Fixed SMPfindElt messages
2023-08-16 11:14:23 +02:00
Francesco Lannutti 8123fde6f7 Handled properly KLU messages when XSPICE is purely digital 2023-08-16 11:14:23 +02:00
Francesco Lannutti 4200362f42 Fixed Empty Matrix handling in KLU 2023-08-16 11:14:23 +02:00
Francesco Lannutti 937325e2ce Handled an empty circuit with KLU 2023-08-16 11:14:23 +02:00
Francesco Lannutti 4427a1f6dd Rebased upon pre-master branch 2023-08-16 11:14:23 +02:00
Francesco Lannutti ae83b7c807 Added KLU support to HICUM model 2023-08-16 11:14:22 +02:00
Holger Vogt 6b6e9bb7cb Enable log output (warning and error messages) on the Windows GUI 2023-08-16 11:14:22 +02:00
Holger Vogt d6aeb6cd94 Set up the matrix according to branch KLU-6+11-rebase-master-28_10_2020
All cpl example files from ngspice\examples\TransmissionLines are o.k.
2023-08-16 11:14:22 +02:00
Francesco Lannutti 02e7c1c5b0 KLU branch rebased upon master @ 3 Feb 2022
Some merge conflicts have not been solved yet
Please look for >>>> HEAD if you want to solve them
2023-08-16 11:14:22 +02:00
Francesco Lannutti b900527341 Fixed KLU binding for VDMOS 2023-08-16 11:14:21 +02:00
Francesco Lannutti 2bfd22c8f9 Fixed KLU binding for BJT 2023-08-16 11:14:21 +02:00
Francesco Lannutti caf1ee7c47 Fixed a crash when SPARSE is used 2023-08-16 11:14:21 +02:00
Francesco Lannutti 3c15993fe5 Fixed the case when DiagGmin has to not be loaded again and the case when refactoring returns 1 2023-08-16 11:14:21 +02:00
Francesco Lannutti 1ee798ec9d Fixed CKTsetup for KLU when XSPICE is used 2023-08-16 11:14:21 +02:00
Francesco Lannutti 6ccaacaf1d Added the support for KLU to VBIC Self Heating 2023-08-16 11:14:21 +02:00
Francesco Lannutti 12288f7be6 Fixed KLU memory leak during SMPdestroy 2023-08-16 11:14:20 +02:00
Francesco Lannutti 7048a24b74 Added the KLU support to Noise Analysis 2023-08-16 11:14:20 +02:00
Francesco Lannutti 4639e936a3 Fixed the dimension of the COO Trash Can 2023-08-16 11:14:20 +02:00
Francesco Lannutti 73626c62f8 Add KLU support to VDMOS 2023-08-16 11:14:20 +02:00
Holger Vogt 3bb643c8f5 re-enable CIDER with option sparse by setting CKTkluMODE
in new matrix to CKTkluMODE from current circuit.
2023-08-16 11:14:20 +02:00
Holger Vogt 98dd7da1c4 fix a memory leak in ASRC 2023-08-16 11:14:20 +02:00
Francesco Lannutti 613ae18db9 Fixed a memory leak 2023-08-16 11:14:20 +02:00
Holger Vogt 33eec95855 plug a memory leak 2023-08-16 11:14:20 +02:00
Holger Vogt d5434a2df2 fix a memory leak
ckt->CKTmatrix is now malloced, so has to bee freed as well
2023-08-16 11:14:19 +02:00
Francesco Lannutti 967ee13940 Added a comment in NIiter 2023-08-16 11:14:19 +02:00
Francesco Lannutti 1110019ff2 Changed the PivTol in SMPreorder with PivRel 2023-08-16 11:14:19 +02:00
Francesco Lannutti 0b7dc09fc1 Fixed the accounting statistics for SPICE and CIDER about number of elements in KLU 2023-08-16 11:14:19 +02:00
Francesco Lannutti 3b1f5e6122 Changed the Error message in klusmp.c to Information 2023-08-16 11:14:19 +02:00
Francesco Lannutti 88074a23c9 Fixed 2 files due to rebasing KLU branch on the master branch - 8/7/2020 2023-08-16 11:14:19 +02:00
Francesco Lannutti fe89da2b2c Getting rid of SPARSE for Initial Circuit Matrix creation. Now KLU is totally independent from SPARSE. This opens up the interface for other solvers as well
SPARSE can still used through '.options sparse', but it isn't possible to switch from KLU to SPARSE and viceversa at run-time
2023-08-16 11:14:18 +02:00
Francesco Lannutti 4d00b67b4d Used IF_REAL instead of IF_FLAG 2023-08-16 11:14:18 +02:00
Francesco Lannutti 49f6444957 Added "klu_memgrow_factor" option to control the KLU memory grow factor 2023-08-16 11:14:18 +02:00
Francesco Lannutti 5513f6e5f6 Handled the SINGULAR matrix case in a more clever way! 2023-08-16 11:14:18 +02:00
Francesco Lannutti 658f449c9b Fixed the VSRCbindCSC routine 2023-08-16 11:14:18 +02:00
Francesco Lannutti f487720b10 Fixed BJTbindCSC routine 2023-08-16 11:14:17 +02:00
Francesco Lannutti fbd8d94cdf Fixed again the NIiter loop for KLU 2023-08-16 11:14:17 +02:00
Francesco Lannutti 710341bbfd Fixed KLU returns values so that NIiter can Factor again, if the matrix is numerically singular from the refactorization
Fixed the NIiter code to perform a factorization without reloading the matrix
2023-08-16 11:14:17 +02:00
Francesco Lannutti 72d78a2053 Added the KLU support to ADMS models 2023-08-16 11:14:17 +02:00
Francesco Lannutti 77fa5c06a9 Fixed the KLU returns values for Factorization and ReFactorization.
If the matrix is Numerically Singular, continue the factorization till the end
2023-08-16 11:14:17 +02:00
Francesco Lannutti 8a8adfe451 First KLU support of CIDER TWOD simulations 2023-08-16 11:14:17 +02:00
Francesco Lannutti fdd815183a Fix SMPfindElement for KLU 2023-08-16 11:14:17 +02:00
Francesco Lannutti 11fb209ee6 First KLU support of CIDER ONED simulations 2023-08-16 11:14:16 +02:00
Francesco Lannutti 4c351f51bd Moved the KLU binding structures to be property of the XSPICE connections, instead of XSPICE instances 2023-08-16 11:14:16 +02:00
Francesco Lannutti 534394c0bb First attempt of KLU support for XSPICE 2023-08-16 11:14:16 +02:00
Francesco Lannutti 6b6642fbcf Updating CKTsetup in preparation of XSPICE support 2023-08-16 11:14:16 +02:00
Francesco Lannutti f3127234aa Maintain the KLU related changes under '#ifdef KLU' 2023-08-16 11:14:16 +02:00
Francesco Lannutti a5885f0e95 Compacted the flag for KLU matrix being Real or Complex to one single bit 2023-08-16 11:14:15 +02:00
Francesco Lannutti 43f7bede8f Added the support for .ic statement in KLU mode 2023-08-16 11:14:15 +02:00
Francesco Lannutti f66e06b702 Fixed the KLU binding for BJT 2023-08-16 11:14:15 +02:00
Francesco Lannutti 759fc38647 Commented out some debug printings 2023-08-16 11:14:14 +02:00
Francesco Lannutti 330de64b19 Fixed the two routines for SPARSE (thx to Marcel Hendrix) 2023-08-16 11:14:14 +02:00
rlar e31867ead9 (int) casts, applied to a double which just has been limited to INT_MAX 2023-08-16 11:14:14 +02:00
rlar f690a2d5e9 casting, use (int) sizeof(), to swallow some warnings 2023-08-16 11:14:14 +02:00
rlar eda8b57eb4 use TMALLOC 2023-08-16 11:14:14 +02:00
Francesco Lannutti b87c539435 Handling the general case for an empty CSC matrix during the conversion to CSR format 2023-08-16 11:14:14 +02:00
Francesco Lannutti 8b302dfdab Ordered the COO format also along the columns to have a correct CSR format 2023-08-16 11:14:14 +02:00
Francesco Lannutti 7b0d1ef2ac Fixed the AC part of the Sensitivity Analysis 2023-08-16 11:14:13 +02:00
Francesco Lannutti 7f85b35260 Fixed the CSC to CSR conversion for KLU matrix-vector multiplication 2023-08-16 11:14:13 +02:00
Francesco Lannutti 463e2db25a Fixed Sensibility Analysis for KLU - First Trial 2023-08-16 11:14:13 +02:00
Francesco Lannutti 1099b5452e Avoid crashing during the Sensitivity Analysis in KLU, stating that it isn't supported 2023-08-16 11:14:13 +02:00
Francesco Lannutti 0429238df5 Fixed Sensitivity Analysis integration for KLU 2023-08-16 11:14:13 +02:00
Francesco Lannutti 0823ed4e16 Fixed the sign inversion calculation for the determinant of KLU 2023-08-16 11:14:13 +02:00
Francesco Lannutti e77879ae50 Implement klu_z_print() 2023-08-16 11:14:13 +02:00
Francesco Lannutti 0afda7f89c Implement spMatrix_CSC_dump() 2023-08-16 11:14:13 +02:00
rlar d2562ba82f fix vsrc for pz analysis 2023-08-16 11:14:12 +02:00
Francesco Lannutti 634156844b Use spDeterminant_KLU 2023-08-16 11:14:12 +02:00
Francesco Lannutti 4d37c32a14 Implemented spDeterminant_KLU 2023-08-16 11:14:12 +02:00
Francesco Lannutti 4a32cfe362 Fixed SMPcZeroCol 2023-08-16 11:14:12 +02:00
Francesco Lannutti 4489f2b0b2 klu_extract_Udiag, Fixed the PZ Analysis for KLU - Added a missing KLU node in VSRC which exists only in case of PZ Analysis - Other fixes 2023-08-16 11:14:12 +02:00
Francesco Lannutti 0146a6667c other fixes 2023-08-16 11:14:12 +02:00
Francesco Lannutti f25b22e56a Fixed a bug in SMPpreOrder and let KLU digest an empty matrix 2023-08-16 11:14:12 +02:00
Francesco Lannutti dddaab6637 Implemented the Solve Transpose for KLU 2023-08-16 11:14:11 +02:00
Francesco Lannutti 6aece7faf7 Fixed the SMPcSolve routine for KLU 2023-08-16 11:14:11 +02:00
Francesco Lannutti 4a7dd29867 Enhanced KLU to avoid loosing computation cycles. The speedup is quite low, though: ~1% 2023-08-16 11:14:11 +02:00
Francesco Lannutti 15e732dbb4 fix the list of supported devices 2023-08-16 11:14:11 +02:00
rlar e73dae237e Added CPL Model to KLU 2023-08-16 11:14:11 +02:00
Francesco Lannutti 716fa64765 Added HISIMHV2 Model to KLU 2023-08-16 11:14:11 +02:00
Francesco Lannutti 14378755f5 Added ASRC Model to KLU 2023-08-16 11:14:11 +02:00
Francesco Lannutti a47ed5dba4 KLU Integration from scratch #7, devices, bsim4/ (which is bsim4v8) 2023-08-16 11:14:11 +02:00
rlar 717a99b07a KLU Integration from scratch #6, devices, bsim4v7/ 2023-08-16 11:14:10 +02:00
Francesco Lannutti 405f206ba6 Fixed the KLU package to let it correctly compile in libngspice.so 2023-08-16 11:14:10 +02:00
Francesco Lannutti 2dcc83510b KLU Integration from scratch #5, devices 2023-08-16 11:14:10 +02:00
Francesco Lannutti ce18d6846f KLU Integration from scratch #4, changed files 2023-08-16 11:14:10 +02:00
Francesco Lannutti cf5991ae81 KLU Integration from scratch #1, new files 2023-08-16 11:14:10 +02:00
Francesco Lannutti 60b4c3cda7 move include files to src/include/ngspice/ 2023-08-16 11:14:10 +02:00
Francesco Lannutti 23da61873d fix include file directories (will be in src/include/ngspice/) 2023-08-16 11:14:09 +02:00
rlar 71e403652f delete-trailing-whitespace 2023-08-16 11:14:09 +02:00
Francesco Lannutti 9dad1ae0b7 incorporate KLU source files from SuiteSparse-3.7.0.tar.gz 2023-08-16 11:14:09 +02:00
rlar e5c40de9e7 SuiteSparse.org, recipe for incorporation of SuiteSparse-3.7.0.tar.gz 2023-08-16 11:14:09 +02:00
Holger Vogt 2275fb85da add a comment 2023-08-14 23:40:48 +02:00
Holger Vogt 313a0cdf66 Do not set a breakpoint at current time,
as this may lead to trigger a "breakpoint in the past"
message and stop the simulation, depending on double
precision details during comparison.
2023-08-14 15:56:59 +02:00
holger 57c880b6a3 Prepare ngspice-41 2023-08-13 14:03:34 +02:00
Holger Vogt cb0e794907 Prevent buffer overflow, remove unused 2023-08-13 11:31:01 +02:00
Holger Vogt 6eb7e0ec82 Remove unused variable 2023-08-13 11:04:34 +02:00
Holger Vogt e1e2d8a88a Replace | by ||,
bug detected by code analysis
2023-08-13 11:04:19 +02:00
Holger Vogt d90c9dd3b5 Initialize to remove VS2022 linker warnings 2023-08-13 10:01:12 +02:00
Holger Vogt de98e49956 Set brackets to remove gcc compiler warning 2023-08-12 23:59:56 +02:00
Giles Atkinson ad02a7c47a Remove duplicate definition of variable idp, as compiler may warn. 2023-08-12 22:46:16 +02:00
Holger Vogt b893e32d75 Reemove needless code, check for '}0',
don't do anything here if not true m=something
2023-08-12 15:11:41 +02:00
Holger Vogt 0e0c8de5ee Remove gcc compiler warning: remove needless code 2023-08-12 15:11:32 +02:00
Holger Vogt 9c2a87a469 Remove buggy if clause, add safeguards against buggy input 2023-08-12 15:11:21 +02:00
Holger Vogt 62f803dfa5 Remove gcc compiler warnings 2023-08-12 15:11:04 +02:00
Holger Vogt d173deea64 Activate callback, remove memory leak 2023-08-12 15:10:49 +02:00
Giles Atkinson 738881a014 Complete version of intertial delay for d_tristate. The State and
Strength members are treated independently and combined in the output.
2023-08-11 11:40:02 +02:00
Giles Atkinson 502f15522e Fix an infinite loop bug that may be seen with "stop whan a>b" or
"stop when a<>b".
2023-08-11 11:39:17 +02:00
Brian Taylor f16c0556af Add support for PSpice DLYLINE. 2023-08-11 11:39:06 +02:00
Giles Atkinson ee7250e11f Fix a crash when trying to auto-bridge a real-valued event node
and improve an error message.
2023-08-11 11:38:45 +02:00
dwarning 53af7d179b decrease iteration count for low base biasing 2023-08-11 11:38:24 +02:00
Holger Vogt 2065dee82c Fix comment on old-style .lib 2023-08-11 11:37:49 +02:00
Brian Taylor e235fda42b For d0_eff, d0_gff timing models specify the 1.0e-12 minimum Xspice delay valuesrather than defaulting to 1ns. 2023-08-11 11:37:19 +02:00
Holger Vogt d4c54123d4 Revert "Add code in ivars.c to look for a SPICE_ROOT environment variable"
This reverts commit 6b0ab44f1e.
2023-08-06 16:27:33 +02:00
Holger Vogt 75ce3c95e3 eprvcd [-a] [-t timescale] node node ...
timescale is now given by minimum 1fs, maximum 1s.
2023-07-31 14:30:53 +02:00
Holger Vogt 7c0bbcd9b2 Remove vs2022 linker warning (ctx potentially uninitialized) 2023-07-31 14:30:29 +02:00
Holger Vogt da3dda3269 replace exp10() by pow(10, ...),
exp10 not available in VS2022
2023-07-31 14:30:21 +02:00
Holger Vogt dc5291fa91 fopen_with_path enable path search (directory of recent inputs or
NGSPICE_INPUT_DIR)
2023-07-31 14:30:13 +02:00
Giles Atkinson 4df2e69009 Fix Bug #629 - "XSPICE d_osc failures". The old code has been completely
replaced by a new design that is faster, more reliable and does not
usually insert analog breakpoints.
2023-07-31 14:29:36 +02:00
Giles Atkinson 6b0ab44f1e Add code in ivars.c to look for a SPICE_ROOT environment variable
that gives the location of the ngspice installation.  That allows
binaries to be installed in a different directory to the one
compiled in.  The spinit startup file is made location-independent
by passing a variable giving the location of loadable modules,
so this fixes Bug #615 -
"spinit contains arch dependent paths, but is installed as noarch DATA".
2023-07-31 14:29:23 +02:00
Giles Atkinson 4cc0ac846d Add an option for parameters to the xfer code model to be provided
in a Touchstone-format file instead of as a model parameter.
The change to mif_inp2.c allows the "table" parameter to be omitted.
2023-07-31 14:28:40 +02:00
Giles Atkinson 84821a4cf5 Add support for including analog node changes in VCD file output,
and an option to explicitly set the VCD timestep.  Correct the
output value for high-impedance nodes.
2023-07-31 14:28:29 +02:00
Holger Vogt 3adfa89cfc Prevent crash when number of parameter dependencies increases beyond
limit. Raise the limit from 100 to 200.
2023-07-31 14:27:49 +02:00
Holger Vogt 18911b06b6 re-enable rcheck debug output with WINGUI 2023-07-31 14:27:35 +02:00
Holger Vogt aa10f9344e Add variable "csnumprec" to allow setting the precision of vectors
and variables as arguments to functions listet in manual chapter 17.5.
Default is 6, as has been standard up to now.
2023-07-31 14:27:23 +02:00
Holger Vogt 6c48657896 Make status report (MS Windows only) a little smarter. 2023-07-31 14:27:13 +02:00
Holger Vogt fe3222a118 Add an option nginfo to enable a status report during simulation
(currently available only with MS Windows GUI version).
2023-07-31 14:26:40 +02:00
Holger Vogt c66f9faaab Remove compiler warnings (VS2022) 2023-07-31 14:26:23 +02:00
Brian Taylor b79eca646b Prevent crashes in udevices.c when malformed U* instances are present. This would happen with incorrectly written U* gates, ff, latches which do not conform to the PSpice specs. Instead, ERROR messages are output which, hopefully, will help a user to debug their subckt. 2023-07-31 14:26:01 +02:00
Giles Atkinson 480e269102 Allow netlist lines to grow during parameter substitution,
removing a 25-character limit on the size of string parameters.
2023-07-31 14:25:51 +02:00
Giles Atkinson 576f218945 Fix the NAND and NOR variants of XSPICE code model multi_input_pwl
and add an example of its use with the E-source NAND variant.
2023-07-31 14:25:40 +02:00
Giles Atkinson 3a260fd4d9 Fix Bug 584 - "XSPICE dac_bridge model shows incorrect output timing."
Remove reliance on exact breakpoint timing and tidy code.
2023-07-31 14:25:31 +02:00
Holger Vogt bc41e48126 Change message from Circuit2 to Parse 2023-07-31 14:25:23 +02:00
Brian Taylor 4d8b105b86 Simplify expression nesting depth. 2023-07-15 11:34:09 +02:00
Brian Taylor 251f1e1984 The channel data needs to be freed for some 2D Cider devices. This shows up with some of the examples/cider/parallel circuits. 2023-07-15 11:33:52 +02:00
Holger Vogt d74e43f0f0 Move extern declaration to the top, out of any function.
Thus remove VC2022 compiler warnings.
2023-07-15 11:33:11 +02:00
Brian Taylor 159e185bfe Tidy up sp_shutdown with Cider. 2023-07-15 11:32:52 +02:00
Brian Taylor 51b361bbf0 When Cider models are present, a normal batch mode sp_shutdown (for example, ngspice -b cmosinv.cir) will call com_quit(NULL). This cleans up so that valgrind will find no leaks in Cider devices after sp_shutdown. To disable this feature, set the environment variable CIDER_COM_QUIT="OFF". Even though it really does not matter that Cider memory is cleared just before exit, it makes it cleaner for valgrind checks. 2023-07-15 11:32:37 +02:00
Holger Vogt ba2842b55a Prevent a crash if p==NULL (due to buggy input) 2023-07-15 11:32:26 +02:00
dwarning 794a37339a ifft: in case input array is smaller then output array - fill in the rest with zero to prevent uninitialzed plot variables 2023-07-15 11:32:11 +02:00
dwarning 42b803e5c2 same array size for in- and output in inverse fft function from fftw3 2023-07-15 11:31:59 +02:00
Brian Taylor 25c1c971e5 Fix the Cider memory leaks from setupContacts. TWOdestroy needed to free the contact nodes. 2023-07-15 11:31:48 +02:00