Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.
Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.
Field Dependent Conductivity
Posted 28 feb 2011, 14:24 GMT-5 Low-Frequency Electromagnetics, Heat Transfer & Phase Change, Modeling Tools & Definitions, Parameters, Variables, & Functions Version 3.5a, Version 4.1 11 Replies
Please login with a confirmed email address before reporting spam
Has anyone done this successfully?
Thanks,
Nick
Please login with a confirmed email address before reporting spam
no I havent done that exactly tht way, so I have no direct reply to propose.
But one thing the Jacobian failure is when COMSOL resolves the gradient or space dervatives of your variables. It T is a dependent variable or a constant than (Tx,Ty,Tz) are rather easily solved and the derivative of your function f(T) can be estimated.
But Ex,Ey,Ez, are aready gradients, hence already noisy, so estimating Exx,Eyy,Ezz can be even vorse such that f(Ex) might be difficult to derivate cleanly further more difficult to build a Jacobian
You might try a "nojac(f(Ex))" but I'm afraid, in your case this will send the solver far off, as such linking makes mostly the model non-linear, hence a good estimation of the varaible derivatives are even more important for the solver to converge.
Remains to see if you might add a function and its derivative expressed in a simpler way ie.e as a global equation / ODE
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
is it possible to use the 'recover' option for variables in equations? Is there a 'recover'-operator like recover(Ex) or something like that to use the polynominal approximation to obtain rather smooth derivatives instead of the "normal", chain saw like derivatives? Then you might solve the jacobian issue, if this is caused by noisy derivatives. One remark: using 'recover' might work well in domains, but if it gets close to borders, "recovered" derivatives can have big errors.
Regards
Please login with a confirmed email address before reporting spam
and "recover" takes time, I'm not sure they are foreseen for use during a solver sequence
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
At least every additional stuff, which should smooth the derivatives, will cause computational time.
Please login with a confirmed email address before reporting spam
Indeed, except if you can express the function in a more like an analytical way, all depends on the model and what one are doing ;)
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
It depends on how your conductivity is varying with the electric field !! Non-linearity issue!!!
I have tried a time ago to make similar thing but with the permittivity using electrostatic module. I had an analytical function which correlates the epsilon value to the computed electric field within the domain : epsilon(E).
To get a correct calculation, I had to compute the solution first for a constant value of epsilon and then restart the computation by activating the function epsilon(E). Of course this constant value (point) has to be chosen following your physical expectations.
I hope it helps
Cheers
Please login with a confirmed email address before reporting spam
But Ex,Ey,Ez, are aready gradients, hence already noisy, so estimating Exx,Eyy,Ezz can be even vorse such that f(Ex) might be difficult to derivate cleanly further more difficult to build a Jacobian
I found the expression ec.Ex from the menu within my 3d results, where it is described as the x component of the electric field, not the gradient along the x direction. I think that with electric field, the gradient in the x direction would be ec.Exx . Do you agree with this?
Please login with a confirmed email address before reporting spam
To get a correct calculation, I had to compute the solution first for a constant value of epsilon and then restart the computation by activating the function epsilon(E). Of course this constant value (point) has to be chosen following your physical expectations.
Did you use a stationary solver with your constant value of epsilon before you solved with your epsilon(E)?
Please login with a confirmed email address before reporting spam
you are perfectly right ec.Ex = -Vx the gradient of the voltage, that's the danger of using a convention and then violate it with exceptions at the first occasion :)
There are so many physics and each have its exceptions, COMSOL could have chosen a more systematic convention here and avoid exceptions, I hope thy weould be more systematic, it's already tough with all their implicit indexes and meanings ;).
i.e. "_x" for derivatives and "x" simple suffix for components hence we would have ec.Ex_x = -V_x_x
But once started with such things it's difficult to change later, V4 could have been used for that too. Hopefully thex will write out again the full list of variables as they had for 3.5a
Still my comment remains Ex i defined from a gradient hence is somewhat noisy whcih could (but not necesarily be enough) to give you solver or Jacobian derivative issues
--
Good luck
Ivar
Please login with a confirmed email address before reporting spam
Run any ac/dc model and check out the results tab; click on Surface which is under 3D Plot Group.
(This is in 4.1 by the way)
Click the Replace Expression button, and find Electric Field under the Electric Currents tab.
The description for Ex is the x component of the electric field.
This is not a gradient; In this case Ex does not = -d(V)/dx
The first line of your response is a little puzzling to me because that is the opposite of what I asserted.
I have switched to using ec.normE , however when the conductivity gets too high and my model begins to melt COMSOL becomes stuck on one time step forever.
Regards,
Nick
Please login with a confirmed email address before reporting spam
obviously it's getting late for me and I need to dig into the doc again, and we are slightly missing each other for the understanding I believe ;)
But, I even did a quick check before writing my previously response, looking at the equations under the EC/ES modules (see png) :(
and ec.normE = sqrt( realdot(Ex,Ex)^2 + realdot(Ey,Ey)^2 + realdot(Ez,Ez)^2 )
realdot() is there since Ex,y,z might be complex, as you square the variables for the norm you might get some bifurcation issues with the solver indeed
Note in the magnetic MF we have Ex = Axt or d(Ax)/dt or for MEF a combination of both EC and MF
The difference might come from the "curl" and "Lagrangian" shape elements used respectively for solving A and V as dependent variables
again note the notation:
Ax is the x component of vector A, while Vx is the x derivative of the scalar V
Axx is the x derivative of Ax the vector x component, while Vxx is the second derivative of scalar V
--
Good luck
Ivar
Attachments:
Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.
Suggested Content
- BLOG Modeling of Materials in Wave Electromagnetics Problems
- KNOWLEDGE BASE Two-Phase Flow Modeling Guidelines
- FORUM Using analytical expression for implementing E field dependent conductivity
- FORUM Temperature-dependent Thermal Conductivity
- FORUM Using analytical expression for implementing E field dependent conductivity