Discussion Locked This discussion was was locked by a forum moderator.
Variables & Functions in Comsol 4.1
Posted Mar 22, 2011, 6:56 PM EDT Version 5.2a 14 Replies
I am trying to do something very simple that worked perfectly in 3.5a, but that I cannot reproduce in 4.1. I have the feeling that I am totally missing something, but I do not know what.
I define a global variable, myVar, and want to use it in a global function, myFun. The function myFun does not recognize the variable myVar (when plotting the function). Why???
Next, I want to use this function (which is a function of time) to define a boundary load (Model 1>Solid Mechanics>Boundary load 1). But the function is not recognized (it stays orange). Why???
I have put the example as attachment.
Thanks for any help.
there are the color code that Mostly works OK, but sometimes need a solve initialisation, or a refresch such as exciting and reentering a node to get updated.
The colors are orange for unit errors, and red for typos (missing (), undefined variables ...)
Then there are a few things to learn:
operators and functions require unitless entries (and return unitless)
hence if you wanf to use myFunc(myVar) as a force input in Newtons, you should write:
if myVar are in microns, and you write myVar[1/m] then the microns are scaled to meters and entered into the function as meter value, but without units
Then another point: if you have solved a model, and you add some operators, these are not understood by the Results section before you have "updated the solver" or done a full new "Solve". Therefore they are not accessible and flagged as unknown in a postprocessing sequence.
Finally, if you leave the mouse pointer over a variable field with an error, normally COMSOL will tell you the error it detected, in a small popup
Thanks for your answer. I get the point with the use of functions that require unitless entries :-)
The point concerning the use of a variable in a function was maybe not explained correctly. Here is what I want to do:
In global variables:
In global functions:
Now when I want to plot the function myFun over the interval [0 1], I get the following error message:
-Plot: previewplot1 (Line graph)
If you open the file attached to my first post, you should be able to reproduce this behaviour. It seems that it is not possible to define a variable and to use it as a constant in a function?
The problem is the use of a Global Variable in the Analytic function. Analytic functions take one or more argument that you define directly in the Settings window for the Analytic function. That is, you can define it without specifying the actual names of the arguments that you will use when calling it. For defining analytic functions you can use any predefined mathematical functions and also Global Parameters but not Global Variables. That is because a Global Variable can have an explicit dependence on the time t, for example. So, in your model, define myVar as a Global Parameter instead.
If the definition of myVar*t means "a constant times the time t" you can define it directly as Global Variable, where "t" is a predefined variable for time. If you define it as analytic function, you can call it with "t" for time or any other input argument.
Magnus Ringh, COMSOL
Thanks for the explanation. Now I understand better how Comsol 4.1 deals with variables and functions :-)
May I add to the question with my query: how can I define a function of a function (in 4.2)?
I defined functions:
epc = e1 - j*s1/(2*pi*freq)
emc = e2 - j*s2/(2*pi*freq)
Arguments: freq [Hz}
When I try to define and then plot the third function, F=(epc(freq)-emc(freq))/(epc(freq)+2*emc(freq)), I get the error message
"Unknown function: epc".
I tried using synthax epc(freq[1/Hz]) - I still get the "unknown function" error, or just simply epc-emc/(epc+2*emc) without arguments but then COMSOL interprets it as a variable.
Any ideas how I could do this?
I'm not sure what it could be, but I expect you are aware that many of the short names are already used by COMSOL such as s1 and s2, perhaps some of the others too. This is not necessarily flagged by COMSOL, as certain redefinitions are allowed, but when done by error strange things comes out of your solver ;)
My name is Arsene. I would need your help to solve a COMSOL problem.
I have a data table of specific heat (Cp) of Gadolinium. Those data variate with temperature (T) and magnetic field (H) (see attached file).
I would like to import this data into my comsol model and define a two-dimensional interpolation function, so that, for any value of T and H calculated by the model I could find a value of Cp.
How could i do it
Thankyou in advance for you precious help
I believe its the format that is not correct, you need to order it in columns and not in a matrix (check user 4.3a guide p 194++)
But then also, look at the material from the material data base that is using T and or Pa dependence. For materials you need to define a blanc material, add the interpolation function, read from file, and check that its the correct format "T, H, data" in columns (there is an example to in the User guide, and more in the materials doc, if you have that one)
would you mind to share your model in 3,5 version? i believe i had the same problem as yours.
I regret but I do not have the 3.5 file anymore.
the study is stationary, so how can it solve for myVar*t
This thread seems to be spanning several different topics and is loosing focus. In the interests of keeping each thread focused around a single subject, we are closing this thread for further comments. If there are any other related questions, please open a new thread, and reference this one, if it is relevant.
With respect to the latest question, about the tangential derivatives and components: please see the section on "Predefined and built-in variables" in the COMSOL Multiphysics Reference Manual.
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.
- KNOWLEDGE BASE Smoothed step transitions in COMSOL Multiphysics
- KNOWLEDGE BASE My flux calculation seems wrong
- BLOG Accessing External Material Models for Structural Mechanics
- BLOG Using Gradient-Free Optimization
- FORUM FUNCTIONS