PDEPE solver with x-dependent diffusion constant

2 visualizaciones (últimos 30 días)
Thomas
Thomas el 17 de Mzo. de 2015
Editada: Ronald el 4 de Mayo de 2016
Hello,
according to the documentation of the PDEPE solver one can use diffusion constant values that are dependent on x. However, if I calculate a simple 1 D model and set the c value with an if statement in the solver, I find that the system converges to entirely different values than it did before. This should not be the case, the diffusion should go slower in the more rigid parts, but the endvalues should be exactly the same.
This also happens if I do not use an if statement buf for example c=sin(x). Is this a major bug? How can i cirumvent this?
Greetings, Thomas

Respuesta aceptada

Torsten
Torsten el 18 de Mzo. de 2015
The diffusion coefficient is under the d/dx-operator - so how can you put it in the c-array ?
You must define f=Diff*DuDx where Diff is the diffusion coefficient (which may depend on x).
If this does not answer your question, we will have to see the MATLAB code to give further advice.
Best wishes
Torsten.
  2 comentarios
Thomas
Thomas el 18 de Mzo. de 2015
Thank you, that was exactly what was going wrong. Splendid!
Ronald
Ronald el 4 de Mayo de 2016
Editada: Ronald el 4 de Mayo de 2016
Torsten: If I understand it corrctly, the constant Diff under the d/dx-operator refers to diffusivity (physically)? Since in d^2/dx^2 T - c d/dt T=0, the constant 1/c refers to diffusivity.
Nevertheless it should be possible to make the parameter c in the pdepe framework time-dependent, right? Do you maybe know how to realize this? Because the solver supposes c has the diagonal elements for each c_i of the pde-system, it is quite confusing.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics and Optimization en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by