Commit Graph

371 Commits

Author SHA1 Message Date
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 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 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 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 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 43f7bede8f Added the support for .ic statement in KLU mode 2023-08-16 11:14:15 +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 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
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 405f206ba6 Fixed the KLU package to let it correctly compile in libngspice.so 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
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
Holger Vogt 0ee5e3f32a Add a control language function cvector, to create a complex vector.
Let vec1 = cvector(50)
will generate a complex vector, with the real part values
increasing from 0 to 49, the imaginary values are set to 0.
Useful in ac loops to store result data.
2023-07-15 11:17:10 +02:00
dwarning a4f6a777c0 few cleanings to prevent compiler warnings 2023-05-27 10:41:21 +02:00
Holger Vogt 3632a6b4ae We need to translate from degree to rad 2023-03-18 22:32:25 +01:00
Holger Vogt 2a6052517b Fix prvious commit: allow access to all vector elements of cc 2023-03-18 22:32:19 +01:00
Holger Vogt 68156fa62c Complex number handling other than MSVC 2023-03-18 22:32:07 +01:00
Holger Vogt 71571a1432 Add function atanh to .control section 2023-03-18 22:31:48 +01:00
Holger Vogt da77fad749 In the very rare case of pPivot being NULL, prevent a crsh
by reordering the matrix.
2023-03-18 14:33:25 +01:00
dwarning 45e6d319f3 partly revert last commit: only real input vector get special scaling for dc component 2023-03-18 14:31:31 +01:00
dwarning bccaee4821 correct fft dc scaling bug #620 2023-03-18 14:31:24 +01:00