MATLAB How to Define Temperature in a MATLAB Mass Transfer Simulation?

  • Thread starter Thread starter Meaningless
  • Start date Start date
  • Tags Tags
    Matlab Numerical
AI Thread Summary
The discussion revolves around troubleshooting a MATLAB finite element simulation for mass transfer involving first-order equations. The user is encountering errors when defining temperature using exponential and complementary error functions (erfc). Key points include the importance of using element-wise operations, specifically the ".*" operator for multiplication and "./" for division, to avoid common MATLAB errors. Suggestions are made to simplify the expressions to identify where the failure occurs, emphasizing the need for proper variable definitions and ensuring that arrays for time (t) and spatial dimension (x) have the same number of elements. The conversation highlights the necessity of clear syntax and coding practices in MATLAB to successfully implement the simulation.
Meaningless
Messages
2
Reaction score
0
Hi Guys,

I'm trying to do a simple first-order, 1d (x-direction) simulation of mass transfer with the finite element toolbox in MATLAB for the following closed set of equations:

.latex?%5Cfrac%7BdX%7D%7Bdt%7D%20%3D%20%5Cfrac%7BK%7D%7BT%7D%5Cfrac%7B%5CDelta%20P%5E2%7D%7BX%7D.gif


ht%20%29%20+%5Cfrac%7Bx%7D%7B2%7Derfc%5Cleft%20%28%5Cfrac%7Bx%7D%7Bt%7D%20%5Cright%20%29%29.gif


gif.gif


(Please note: "X" is not to be confused with the lowercase spatial dimension "x")

However, every time I cannot define the temperature (at least with exponential and erfc) without an error. Does anyone know if there is a proper syntax for this?

I appreciate your help.
 
Physics news on Phys.org
This is the syntax I directly entered into the toolbox (I have also directly replaced "P" with the T-dependent expression). I also set x = X for the calculation. I am pretty sure one or two of my variables is not coded properly, particularly the temperature, T.

X' = (K/TX_t)*((10^(A-(B/TX_t + C)))^2)/X_t

TX_t = T0 + C*(t*exp(-X^2/t) + (X/2)*erfc(X/t))
 
Okay, I'd start with building up the expression until it fails so then you have an even simpler failure to show us.

Perhaps:
Matlab:
t=(1:0.1:11)           // create t array of (1,1.1,1.2,1.3 ... 10)
x=(0:0.1:10)         // create X array of (0,0.1,0.2,0.3 ... 10)      same number of elements as t

y = erfc(x./t)          // notice the use of ./ because here you want to do an element by element /
 
Back
Top