From: Ivan R. N. <iva...@ad...> - 2006-11-03 20:22:20
|
Hi Laurent, Thank you for your reply. >=20 > adms creates (should) create guesstopology() as follows: > 1-all bias-dependent assignments are removed > 2-all bias-dependent assignments are kept > 3-contribs are replaced by some C code that set some flags > to nodes >=20 > For instance: > if(rd>0) > I(br)<+V(br)/rd; > else > V(br)<+0.0; > becomes in guesstolopogy() (it is just pseudo code to > explain the intent): > if(rd>0) > br.jacobian.required=3D1; > else > br.pnode.ptr=3Dbr.nnode.ptr; HERE NODES ARE COLLAPSED > After guesstolopogy() setup() allocates the jacobian > according to the values > of the flags 'required'. >=20 > It is possible that something goes wrong with the creation > of > guesstopology() by adms. > Can you send me the file? >=20 > Can you make sure that rd and rs are >0? That might have been a weakness with the first model. I added a check for = rd=3D0 and rs=3D0 like you suggested, and it did indeed do the conditional = node collapsing. Cool! However, the problem seems to lie elsewhere, since= the generated c-code still segfaults. I'm attaching code with the rd/rs m= odification together with the generated c-code for guesstopology(). >=20 > You can run your simulation is debug mode (tons of info are > printed but > they help to see what happen.) There is a test: > if(getenv("ngspice_debug")) > ... >=20 > Try to set the value of the shell variable 'ngspice_debug' > to 1. This gave no further info. The segfault happens before any debug output is= produced. Best regards Ivan |