निरंतरता समीकरण के लिए एक अच्छा परिमित अंतर


22

निम्नलिखित समीकरण के लिए एक अच्छा परिमित अंतर विवेक क्या होगा:

?ρt+(ρu)=0

हम 1D मामला ले सकते हैं:

ρt+ddx(ρu)=0

किसी कारण के लिए सभी योजनाएं जो मैं पा सकता हूं, वह है लैग्रैजियन निर्देशांक में सूत्रीकरण। मैं इस योजना के साथ इस समय के लिए आया था ( जे इंडेक्स की अवहेलना ):

ρi,jn+1ρi,jnτ+1hx(ρi+1,jn+1+ρi,jn+12uxi+1/2,jnρi,jn+1+ρi1,jn+12uxi1/2n)=0

लेकिन लगता है कि वास्तव में अस्थिर है या कुछ भयानक स्थिरता की स्थिति है। ऐसा क्या?

वेग की गणना वास्तव में darcy law u = - k के माध्यम से की जाती है। साथ ही हमारे पास राज्य का समीकरण है। पूर्ण प्रणाली में एक ऊर्जा समीकरण और आदर्श गैस के लिए राज्य का समीकरण भी होता है। वेग नकारात्मक हो सकते हैंu=kμp


1 डी मामले में, समस्या अनिवार्य रूप से 1 क्रम हाइपरबोलिक पैड है। क्या आपने पहले ऑर्डर अपराइट फ़ाइनट डिफरेंस स्कीम का उपयोग करने की कोशिश की है?
पॉल

अब तक मैं वही चला रहा हूं, जो मैंने प्रश्न में लिखा है। मेरा मामला वास्तव में 2d है। लेकिन चूंकि यह ऐसा शास्त्रीय समीकरण है, इसलिए मुझे लगा कि कुछ शास्त्रीय विवेक भी उपलब्ध होंगे।
tiam

क्या आप दिखा सकते हैं कि इसके लिए एक अपवर्ड स्कीम कैसी होगी। मैं परिमित मात्रा पद्धति से अवधारणा से परिचित हूं जब आप इसे संवहन शब्द में उपयोग करते हैं, लेकिन आपके पास अब कोई उत्पाद नहीं है।
tiam

क्या वेग क्षेत्र दिया गया है, या क्या यह एक विकास समीकरण को भी संतुष्ट करता है?
डेविड केचेसन

वेग की गणना वास्तव में darcy law u = - के माध्यम से की जाती है। पूर्ण प्रणाली में एक ऊर्जा समीकरण और आदर्श गैस के लिए राज्य का समीकरण भी होता है। वेग नकारात्मक हो सकते हैं। यू=-कश्मीरμपी
तीये की

जवाबों:


21

आप बड़े पैमाने पर संरक्षण समीकरण देख रहे हैं:

मीटरटी=0

प्रति इकाई आयतन पर बड़े पैमाने पर विकास पर विचार करते समय, यह प्रवाह रूप में घनत्व संवहन समीकरण को उबालता है:

ρटी=-(ρयू)

इसके बारे में अच्छी बात यह है कि यह एक मनमाना स्केलर क्षेत्र का सिर्फ एक समीकरण है (हमारे मामले में, यह घनत्व के लिए होता है) ) और इसे हल करना (अपेक्षाकृत) आसान है, बशर्ते पर्याप्त समय और स्थान अलग-अलग योजनाएं, और प्रारंभिक। सीमा की स्थिति।ρ

एक अलग-अलग योजना बनाते समय, हम अभिसरण, स्थिरता और सटीकता के बारे में चिंता करते हैं। एक योजना अगर converging है जबΔटी0। योजनाओं की स्थिरता यह सुनिश्चित करती है कि मात्राA कापरिमित बना रहे जबtensures। योजना की औपचारिक सटीकता बताती है कि टेलर की श्रृंखला में आंशिक व्युत्पन्न झूठ में छंटनी की त्रुटि कहाँ है। एक अलग योजना के इन मूलभूत गुणों के बारे में अधिक जानकारी के लिए CFD पाठ्यपुस्तक देखें।ΔΔटीटीΔटी0टी

अब, सबसे सरल दृष्टिकोण सीधे 1 क्रम अपस्ट्रीम विभेदक पर जाना है। यह योजना सकारात्मक-निश्चित, रूढ़िवादी और कम्प्यूटेशनल रूप से कुशल है। पहले दो गुण विशेष रूप से महत्वपूर्ण हैं जब हम एक मात्रा के विकास को मॉडल करते हैं जो हमेशा सकारात्मक होता है (अर्थात द्रव्यमान या घनत्व)।

सादगी के लिए, आइए 1-डी मामले को देखें:

ρटी=-(ρयू)एक्स

अब यह सुविधाजनक प्रवाह को परिभाषित करने के लिए है , ताकि:Φ=ρयू

(ρयू)एक्स=Φएक्सΔΦΔएक्सΦमैं+1/2-Φमैं-1/2Δएक्स

Here's a schematic of what we are simulating:

            u           u
|          -->         -->          |
|    rho    |    rho    |    rho    |
x-----o-----x-----o-----x-----o-----x
     i-1  i-1/2   i   i+1/2  i+1

We are evaluating the evolution of ρ at cell i. The net gain or loss comes from the difference of what comes in, Φi1/2 and what goes out, Φi+1/2. This is where we start to diverge from Paul's answer. In true conservative upstream differencing, the quantity at the cell center is being carried by velocity at its cell edge, in the direction of its motion. In other words, if you imagine you are the advected quantity and you are sitting at the cell center, you are being carried into the cell in front of you by the velocity at the cell edge. Evaluating the flux at the cell edge as a product of density and velocity, both at the cell edge, is not correct and does not conserve the advected quantity.

Incoming and outgoing fluxes are evaluated as:

Φi+1/2=ui+1/2+|ui+1/2|2ρi+ui+1/2|ui+1/2|2ρi+1

Φi1/2=ui1/2+|ui1/2|2ρi1+ui1/2|ui1/2|2ρi

The above treatment of flux differencing ensures upstream-definiteness. In other words, it adjusts the differencing direction according to the sign of velocity.

The Courant-Friedrichs-Lewy (CFL) stability criterion, when doing time differencing with simple first order, forward Euler differencing is given as:

μ=uΔtΔx1

Note that in 2 dimensions, the CFL stability criterion is more strict:

μ=cΔtΔx12

where c is velocity magnitude, u2+v2.

Some things to consider. This scheme may or may not be appropriate for your application depending on what kind of process you are simulating. This scheme is highly diffusive, and is appropriate for very smooth flows without sharp gradients. It is also more diffusive for shorter time steps. In the 1-D case, you will obtain an almost exact solution if the gradients are very small, and if μ=1. In the 2-D case, this is not possible, and diffusion is anisotropic.

If your physical system considers shock waves or high gradients of other sort, you should look into upstream differencing of higher order (e.g. 3rd or 5th order). Also, it may be worthwhile looking into the Flux Corrected Transport family of schemes (Zalesak, 1979, JCP); anti-diffusion correction for the above scheme by Smolarkiewicz (1984, JCP); MPDATA family of schemes by Smolarkiewicz (1998, JCP).

For time differencing, 1st order forward Euler differencing may be satisfactory for your needs. Otherwise, look into higher-order methods such as Runge-Kutta (iterative), or Adams-Bashforth and Adams-Moulton (multi-level).

It would be worthwhile looking into some CFD graduate-level textbook for a summary of above mentioned schemes and many more.


Thank you for the answer. Now I clearly see the upwinding :). I will try to implement that now! I am wondering, can the fact that u changes at every timestep affect the stability?
tiam

1
No, as long as you satisfy the CFL constraint. You can do either adaptive time-stepping, i.e. Δt=Δxmax(u), or set Δt constant according to maximum expected velocity in your problem. Remember that various combinations of time and space differencing methods will give you different CFL constraints.
milancurcic

its a bit weird, I implemented the scheme and I managed to send a pulse from one boundary to the other and back again (by reversing the speed). But as soon as I say that u=Cρ it begins to demand an extremly small timestep, even though the speed is below 1. Setting the dynamic timestep as u define above didn't help either.
tiam

Or maybe it aint weird at all, maybe your comment above didn't govern the case where u and ρ are coupled.
tiam

The stability constraints and order of accuracy are formally derived and valid for linearized advection equation - where u does not depend on ρ. In the past, I have successfully coupled this equation with non-linear Navier-Stokes equations for u,v. Formal stability constraints are not satisfied in that case, but keeping your increments reasonably low works. When setting u=Cρ, your equation becomes ρt=C[(ρ)2+ρ2ρ]. You should investigate (if possible) what is the stability criterion for your equation.
milancurcic

13

In the 1D case, you don't want to use a forward or central difference scheme for the spatial derivative term (ddx) because they are numerically unstable. Instead, it is better to discretize the equation with an explicit backwards (upwind) finite difference for the spatial derivative:

ρik+1ρikΔt+ρikUikρi1kUi1kΔx=0.

यदि वेग सकारात्मक हैं, तो यह पिछड़ी योजना स्थिर है। यदि वे नकारात्मक हैं, तो एक आगे का अंतर काम करेगा। बावजूद इसके, आपकी पसंद पर हमेशा अड़चन होती हैΔएक्स तथा Δटी (आचार्य संख्या) योजना को स्थिर बनाने के लिए।


मूल्यांकन करेंगे ρ पर कश्मीर+1 इसके बजाय हटा दें Δटीरोके?
तियाम

मुझे पूरी तरह से यकीन नहीं है ... मुझे लगता है कि आपको यह सुनिश्चित करने के लिए ट्रंकेशन त्रुटि की जांच करनी होगी कि यह पीडीई को सही ढंग से अनुमानित करता है। आप इस वेबसाइट पर अन्य implict योजनाओं पर विचार करना चाहते हो सकता है: web.mit.edu/dongs/www/publications/projects/...
पॉल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.