Author |
Message |
Richard Beeler (rmbeeler)
New member Username: rmbeeler
Post Number: 1 Registered: 11-2004
| Posted on Tuesday, November 16, 2004 - 01:56 pm: | |
I am trying to model electrical contact for which resistance is a function of current density across the interface. For example: CONTACT(V) = const*JUMP(V)^2 But when I use JUMP in a nonlinear way like this, I get the message: "Can't find JUMP Neighbor. Did you mean to use a CONTACT boundary?" Is there another way to approach this, or are nonlinear applications of JUMP not allowed? |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 260 Registered: 06-2003
| Posted on Tuesday, November 16, 2004 - 07:54 pm: | |
There is an oversight in the matrix construction which does not make provision for nonlinear jump terms in the diagonal block. (Off-diagonal terms are computed differently, and our example "Contact_Resistance_Heating.pde" uses a JUMP(V)^2 successfully.) I have corrected this oversight in version 4.2.4, which I will post in a few days. You cannot, however, write the equation as you have done. The model derives from the concept of contact resistance, with the definition Jump(V)=Flux*Resistance. Since Flux is the item to be defined by the BC, we have the equation CONTACT(V) = const * JUMP(V)/Resistance. A JUMP()^2 dependency implies Resistance = 1/JUMP(V). But since the equation is evaluated on both sides of the boundary, and JUMP(V) will have opposite signs on the two sides, you will always have a negative resistance on one side or the other. This leads to an exponential catastrophe. You must write the statement as CONTACT(V) = const * JUMP(V)*ABS(JUMP(V)) so that the resistance is always positive. |
|