- Scaling: Nondimensionalizing involves scaling the equations so that they are without units, making the range of values more uniform.
- Improved Stability: It can reduce numerical disparities, improving the stability of the solver.
- Better Convergence: The solver might converge more quickly with reduced condition numbers.
- Error Control: It helps the solver's error control work more effectively, as it assumes variables are of similar scale.
- Potential Solution: Nondimensionalizing the equations could help mitigate the issues you're facing with ode15s by making the problem more numerically tractable.
ODE15s nondimensional Jacobian matrix can help convergence?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
구구
el 19 de Nov. de 2023
Respondida: SOUMNATH PAUL
el 30 de Nov. de 2023
Hi
I'm trying to solve a transient multiphysics problem with MATLAB ode15s function.
The problem consists of three physical systems, so the range of there mass and residual matrix is very large and I'm using Jacobian matrix for speed up the ode function.
But the convergence speed is still too slow and ode function failes with the error "Unable to meet integration tolerances without reducing the step size"
So I checked the condition number of the mass and Jacobian matrix and these were in the range between 10^15~10^21.
In this situation, nondimensionalizing the equation colud help?
0 comentarios
Respuesta aceptada
SOUMNATH PAUL
el 30 de Nov. de 2023
Hi,
To my understanding, you are working on a transient Multiphysics problem in MATLAB that involves three different physical systems, and you're using the ode15s function to solve it because it's good for stiff problems. But you are running into issues because the function is taking too long to solve the problem, and sometimes it can't find a solution within the allowed error limits without reducing step size.
You have also observed that the matrices involved in your calculations have condition numbers that are extremely high (between 10^15 and 10^21), which is a sign that the problem is very sensitive to small changes in the numbers you're working with. This can make it hard for the “ode15s” function to work correctly.
Here is how non-dimentionalizing can help in this scenario:
One suggestion is to use “ode23tb”. It might take more computational time per step but will be able to take much larger time steps and overall might be much more performant.
Hope it helps!
Regards,
Soumnath
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre 상미분 방정식 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!