Preventing Oscillations w/ Coarse Calculation Increments?

In summary, the conversation discusses a problem with solving a set of equations that describe a transfer rate along a fixed length. The issue arises when the value of a certain variable is too large and leads to oscillatory behavior. The person is looking for numerical stabilization techniques or a better way to set up the equations to prevent this issue. They mention using Aspen Custom Modeler with a 1st order BFD method and trying different integration methods, but have not found a solution. Suggestions are given to try using a variable step size and predictor-corrector methods.
  • #1
Stargazer43
7
0
TL;DR Summary
I'm trying to solve a system of equations, but it exhibits significant oscillatory behavior and difficult convergence if my calculation increments are too large.
I'm trying to solve the following set of equations across several discrete increments. These aren't the exact equations I'm using, but they're a simplified version with the same general structure...it's basically a set of equations describing a transfer rate along a fixed length, where "Z" is the length, and my increment is some fraction of Z. The values of C, D, and X are all between 0 and 1.

A = B*(C - D)
D = (10^6) * X
X = (A*Z)/(10+(A*Z))

The issue I've been running into is this: if the value of B is too large, then it will lead to oscillatory behavior where X will rapidly increase in the first increment beyond what is physically possible, and then in the next increment swing back the other way as the value of D exponentially increases. This is heightened by the fact that in the initial increment, D is typically 0, and C is typically ~1. In the subsequent increments, the product of the two is typically very small (on the order of 0.1 or less), so it's just the initial few increments that cause problems.

If I make my increments infinitely-small, this goes away, but the calculation time becomes unrealistic. If I try to use if/then statements in my calculations to limit the maximum value of "A", the solvers I'm using majorly struggle, since it creates a significant discontinuity.

Are there any numerical stabilization techniques I can use to prevent this calculation from going haywire if the value of "B" is too large? Is there a better way to set up the equations such that it will limit the value of "A" to a maximum and prevent oscillations, without introducing excessive error?

I saw an article from Comsol on a similar problem, but since I'm not using their software and am not well-versed in PDEs I was struggling to recreate their solution on my own.

https://www.comsol.com/blogs/understanding-stabilization-methods/
 
Physics news on Phys.org
  • #2
What software are you using and what integration method?
 
  • #3
pbuk said:
What software are you using and what integration method?

I'm using Aspen Custom Modeler w/ their 1st order BFD method, but I have tried most of their other built-in methods with the same result. I get the same issue when I try to numerically integrate in Excel also, unless I make my increment size extremely small.
 
  • #4
Yes an implicit method is probably the right choice here, you probably want a variable step size to get over the initial stiffness. I'm not familiar with that software but a search gave me this manual and a quick look turned up (p139):

Element spacing is uniform within a given domain section, but non-uniform spacing can be applied using multiple sections, each with a different spacing. The latter is particularly useful for modeling PDE systems with sharp fronts.

Have you tried that?
 
  • Like
Likes FactChecker
  • #5
Sophisticated programs will vary the step size at different locations to control any divergence. Unfortunately, I don't know what is currently available for use.
 
  • #6
Predictor-corrector methods (the Runge-Kutta algorithm being the classic one) are often the answer to instability in evaluating differential equations. I'm not familiar with your software so don't know that's an option or if there's a good way to graft Runge-Kutta into the solver.
 

1. What are oscillations and why do they need to be prevented?

Oscillations refer to repetitive and unwanted fluctuations in a system's output. They need to be prevented because they can cause instability and inaccurate results in scientific calculations.

2. How do coarse calculation increments help prevent oscillations?

Coarse calculation increments involve using larger steps in the calculation process. This helps to smooth out any sudden changes in the system's output, reducing the likelihood of oscillations occurring.

3. Can coarse calculation increments be used in all types of scientific calculations?

No, coarse calculation increments may not be suitable for all types of scientific calculations. They are most commonly used in numerical simulations and modeling, but may not be applicable in other areas such as experimental data analysis.

4. Are there any drawbacks to using coarse calculation increments?

Yes, there are some drawbacks to using coarse calculation increments. They can lead to less precise results and may not capture small or rapid changes in the system's output. Additionally, using coarse increments may require more computational resources and time.

5. Are there any alternatives to using coarse calculation increments for preventing oscillations?

Yes, there are alternative methods for preventing oscillations in scientific calculations. These include using more advanced numerical methods, implementing error control techniques, and adjusting the system's parameters to reduce sensitivity.

Similar threads

Replies
18
Views
2K
Replies
2
Views
1K
  • Set Theory, Logic, Probability, Statistics
Replies
5
Views
1K
Replies
5
Views
2K
  • Differential Equations
Replies
2
Views
1K
  • Differential Equations
Replies
4
Views
2K
  • Calculus and Beyond Homework Help
Replies
8
Views
116
  • Engineering and Comp Sci Homework Help
Replies
3
Views
1K
  • Advanced Physics Homework Help
2
Replies
44
Views
3K
Replies
2
Views
1K
Back
Top