Commit Graph

7050 Commits

Author SHA1 Message Date
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