# Alternative boundary conditions - Thomas-algorithm

Alternative boundary conditions -- Thomas-algorithm

Hello,

I have to solve a diffusion equation:
MatrixL * Csim(:,i+1) = MatrixR * Csim(:,i) + BoundaryConditions
where Csim = concentration, j = location, i = time.

Boundary conditions are of type Dirichlet (Csim = 5 at j = 1, Csim = 0 at j = end). So I used:

Code:
MatrixL(1,:) = (1 0 0 . . 0)
MatrixR(1,:) = (0 0 0 . . 0)
BoundaryConditions(1) = (5)

so
Matrices, first line: (1 0 . 0) * Csim(:,i+1) = (0 0 . 0) * Csim(:,i) + 5
Matrices, last line: (. . 0 1) * Csim(:,i+1) = (. . 0 1) * Csim(:,i) + 0

--------------------------------------------------------------------------------

To solve this problem with the Thomas Algorithm, I have to write the equation as

Code:
MatrixL2*Csim(:,i+1)  = Csim(:,i)

So MatrixL2 = inv(MatrixR)*MatrixL

However, it is not possible to calculate inv(MatrixR) when MatrixR(1,:)= MatrixR(end,:)= 0

--------------------------------------------------------------------------------

So I tried to describe the boundary conditions in the folloing way :

Matrices, first line: (1 0 0 . .) * Csim(:,i+1) = (1 0 0 . .) * Csim(:,i)
Matrices, last line: (. . 0 0 1) * Csim(:,i+1) = (. . 0 0 1) * Csim(:,i)

But that cat won't jump. So could you please help me to find what's wrong with this?

--------------------------------------------------------------------------------

Because the problem is a littlebit complicated to explain, a longer description is in the attachment.

#### Attachments

• Question.pdf
119.9 KB · Views: 128