Commit Graph

377 Commits

Author SHA1 Message Date
Francesco Lannutti 94b7b82b73 Fix the case when only one model supports CUDA for RHS and one model doesn't support CUDA at all 2018-04-23 01:55:34 +02:00
Francesco Lannutti d0803e5ed6 Move the RHS allocation for Topology Matrix upfront 2018-04-20 00:34:53 +02:00
Francesco Lannutti 6090572fe0 Fix the case when there is no RHS computed by device models 2018-04-19 00:53:55 +02:00
Holger Vogt 4aebc862c0 disable pragma #warning for VisualStudio 2018-03-30 12:06:52 +02:00
Francesco Lannutti a2dcdbc972 Added the support for CUDA and non-CUDA models within the same netlist in CUSPICE
Added KLU support for '.ic' and '.nodeset' instructions, needed also by CUSPICE
2018-03-27 10:00:08 +02:00
Francesco Lannutti 0098c008b1 Add the support for '.ic' and '.nodeset' instructions within KLU 2018-03-27 10:00:08 +02:00
Francesco Lannutti 79c6875e3c Fixed a bug in CKTload regarding CKTdiagGmin. It where added 2 times 2018-03-27 10:00:07 +02:00
Francesco Lannutti abed2083e1 Fixed a bug in CKTtrunc reduction when there is nothing to reduce 2018-03-27 10:00:06 +02:00
Francesco Lannutti 14f9f9dbbe Moved Truncation Error Calculation into GPU for CUSPICE 2018-03-27 10:00:06 +02:00
Francesco Lannutti 697bd8ea4f Fixed a bug in CUSPICE 2018-03-27 10:00:06 +02:00
Francesco Lannutti 4149ae2462 Whitespaces and cosmetic changes to improve readability 2018-03-27 10:00:06 +02:00
Francesco Lannutti 06846167ce CUSPICE Integration from scratch 2018-03-27 10:00:05 +02:00
Francesco Lannutti 2453a2e626 Commented out some debug printings 2018-03-27 10:00:05 +02:00
Francesco Lannutti 8ac6093e34 Fixed the AC part of the Sensitivity Analysis 2018-03-27 10:00:04 +02:00
Francesco Lannutti 74b6460326 Fixed Sensibility Analysis for KLU - First Trial 2018-03-27 10:00:04 +02:00
Francesco Lannutti 4e42a93ba1 Avoid crashing during the Sensitivity Analysis in KLU, stating that it isn't supported 2018-03-27 10:00:04 +02:00
Francesco Lannutti 5e657b5aa1 Fixed Sensitivity Analysis integration for KLU 2018-03-27 10:00:03 +02:00
rlar 91fe96cdc4 fix vsrc for pz analysis 2018-03-27 10:00:03 +02:00
Francesco Lannutti ed17c28db2 other fixes 2018-03-27 10:00:02 +02:00
Francesco Lannutti 4677aa608c KLU Integration from scratch #4, changed files 2018-03-27 09:48:52 +02:00
rlar 41c0ee45a2 introduce GENinstanceFree() and GENmodelFree()
To abstract away the business of releasing the memory
  of a struct GENmodel or struct GENinstance.
2018-02-17 11:53:07 +01:00
rlar 8c7d7051ae GENmodel, GENinstance, change layout, #4/4, complete the change
currently each and every device specific instance and model structure
  duplicates the memory layout of a struct GENmodel / GENinstance

further the first structure elements behind a GENinstance header
  are reinterpreted as a sort of a generic "node" array.

This business is very error prone, and makes it difficult to
  extend struct GENmodel / struct GENinstance.

This patch makes this business much more bearable.
2018-02-17 11:53:06 +01:00
rlar 2dcb79d09c GENmodel, GENinstance, change layout, #1/4, coccinelle semantic patch 2018-02-17 11:53:01 +01:00
rlar 4748c92de9 DEVdestroy(), change API, #2/2, complete the change, inclusive CKTdestroy()
loop over DEVmodDelete() and DEVdelete() in CKTdestroy()
  instead of doing this business in the DEVdestroy() functions.

As a consequence, most DEVdestroy() functions
  collapse completely.
2018-02-17 11:52:59 +01:00
rlar 668123ae44 analysis/cktpname.c, #4/4, cleanup 2018-02-03 13:17:17 +01:00
rlar 30550370fb analysis/cktpname.c, #3/4, cleanup obfuscated loop termination 2018-02-03 13:16:40 +01:00
rlar d85ceb85cb analysis/cktpname.c, #2/4, cleanup, use a local `IFparm *' 2018-02-03 13:16:12 +01:00
rlar 1d60387617 analysis/cktpname.c, #1/4, cleanup, use a local `IFdevice *' 2018-02-03 13:16:01 +01:00
rlar e311096429 gendef.h, get rid of awkward counted GENnode macros 2018-02-03 11:46:24 +01:00
rlar c892b2d460 analysis/acan.c, check for valid startfreq
an 'ac dec' or 'ac oct' can not have a startfreq <= 0
2018-01-20 10:55:26 +01:00
rlar c5d8ad792e analysis/acsetp.c, ac analysis, allow frequency=0 2018-01-15 19:04:52 +01:00
rlar abb07c4306 devices/res/restemp.c, RESupdate_conduct(), avoid excess warnings
This function is invoked several times during initialisation,
  possibly with yet incomplete model and instance parameter settings.
And it might be invoked many times during dc sweep.
2017-10-21 19:05:28 +02:00
rlar 0a48e6f2a7 devices/res, introduce RESupdate_conduct()
which will be usefull later
2017-10-21 19:05:27 +02:00
h_vogt c82ee9d949 introduce option "epsmin"
To define a minimum argument for some log() function invocations.
(most notably for the diode saturation current 'is')
2017-04-19 18:56:00 +02:00
rlar 7afb798a6f check for illegal DEVsetup() DEVunsetup() patterns.
Consider the following silent contracts:
1)
 CKTsetup() invocations must be separated by a CKTunsetup() invocation
 But CKTsetup() has an internal flag,
   which will prevent re-invocation of DEVsetup()
 But DEVsetup() will be called during sensitivity analysis,
   bypassing this precaution. It is fatal if this will
   cause another node allocation (CKTmk..()).
   This commit tries to detect such cases.
   (Note: many DEVsetup routines (all ?) have their CKTmk..() invocations
      guarded to avoid reallocation of local nodes,
      see commit f7f454c0a1
        bug fix, fix the guard for device generated internal nodes (via CKTmkVolt())
   )
   FIXME:
     DEVsetup() is seriously obfuscated by these guards.
     If would be far better, if the sensitivity analysis
       wouldn't sidestep into DEVsetup()
     consider a device local variant of the CKTisSetup flag
2)
 DEVunsetup() must delete all, each and every,
   local allocated node in DEVsetup()
 Otherwise CKTmk..() invocations in a following CKTsetup() will
   return duplicate node numbers, effectively shorting device nodes.
 This commit tries to detect incomplete CKTdltNNum() invocations.
3)
  DEVunsetup() must not delete a netlist node.
  This can easily happen in those devices which have optional ports,
    which have code in DEVsetup() which copies node numbers to
    local node variables.
  This commit tries to detect such errors.
2017-04-12 21:32:51 +02:00
rlar 2c35eebb0b invoke in_parse_temper_trees() and inp_evaluate_temper() unconditionally 2017-04-09 14:06:02 +02:00
rlar f2f2b3b09a inp_evaluate_temper(), add struct circ argument 2017-04-09 13:49:43 +02:00
h_vogt 648de2a001 cktdojob.c, add missing evaluation of TEMPER after new temperature is set
This is relevant for model and device parameters containing TEMPER.
2017-04-09 13:48:55 +02:00
rlar 33788f7052 remove excessive inp_evaluate_temper() prototypes 2017-03-22 21:47:43 +01:00
rlar dc6e1cb064 use strchr() instead of strstr() 2017-03-19 20:24:49 +01:00
Francesco Lannutti 43f24d6f22 rewrite cktsens.c in terms of the 'SMP' matrix interface 2017-03-17 18:22:36 +01:00
rlar c3275241a5 ckti2nod.c, cktbindnode.c, minor cleanup 2017-03-04 16:05:08 +01:00
rlar 239780ebef cleanup, use an array for struct GENinstance.GENnode 2017-03-04 16:04:32 +01:00
rlar b5ccfca24b implement option 'indverbosity' to control check of inductive systems
default is 2, maximum verbosity

option indverbosity=1
  can be used to prevent check for
    "incomplete set of couplings"

option indverbosity=0
  can be used to avoid the check altogether

set indverbosity=INTEGER
  or
.option indverbosity=INTEGER
  works as well
2017-01-02 20:03:25 +01:00
rlar e89a5dd5b4 cktop.c, #14/14, cleanup 2016-10-15 15:06:20 +02:00
rlar b3a0f15c09 cktop.c, #13/14, cleanup 2016-10-15 15:06:20 +02:00
rlar 65596ce76c cktop.c, #12/14, cleanup 2016-10-15 15:06:20 +02:00
rlar 8d843ecec5 cktop.c, #11/14, cleanup 2016-10-15 15:06:19 +02:00
rlar 64fadb90cc cktop.c, #10/14, whitespace 2016-10-15 15:06:19 +02:00
rlar 3041936663 cktop.c, #9/14, shortcut 2016-10-15 15:06:19 +02:00