Poisson समीकरण: Lagrange गुणक के माध्यम से सीमा स्थिति के रूप में पूर्ण ढाल का प्रस्ताव


11

मैं दो आयामों में प्वासों समीकरण द्वारा शासित एक शारीरिक समस्या है

-2यू=(एक्स,y),मैंnΩ
मैं दो ढाल घटकों के मापयू/एक्स औरयू/y सीमा के कुछ हिस्से के साथ,Γ , इसलिए थोपना चाहते हैं और दूर के क्षेत्र में प्रचार करें।
यूएक्समैं0=जी,nΓ

स्पर्शरेखा प्रवणता घटक, , मैं अभी एकीकृत कर सकता हूं और फिर एक Dirichlet स्थिति के माध्यम से लागू कर सकता हूं, जैसे कि सामान्य घटक को एक साथ लगाने के लिए, , मैंने इकट्ठा किया कि मुझे लैग्रेग मल्टीप्लायरों के माध्यम से जाना होगा।गामामीटरयूux(t,0)u

Γmux(t,0)ds=u0
ux(n,0)

इसलिए मुझे लगता है कि परिवर्तनशील रूप तब मैंने संबंधित समस्याओं जैसे https से संबंधित जानकारी पर इसे एक साथ रखने की कोशिश में एक लंबा समय बिताया : //answers.launchpad.net/fenics/+question/212434 https://answers.launchpad.net/fenics/+question/216323

ΩuvdxλΓm(ux(n,0)gm)vds=Ωfvdx

लेकिन अभी भी नहीं देख सकता कि मैं गलत कहाँ जा रहा हूँ। अब तक का मेरा समाधान प्रयास है:

from dolfin import *

# Create mesh and define function space
mesh = UnitSquareMesh(64, 64)
V = FunctionSpace(mesh, "Lagrange", 1)
R = FunctionSpace(mesh, "R", 0)
W = V * R

# Create mesh function over cell facets
boundary_parts = MeshFunction("uint", mesh, mesh.topology().dim()-1)

# Mark left boundary facets as subdomain 0
class LeftBoundary(SubDomain):
    def inside(self, x, on_boundary):
        return on_boundary and x[0] < DOLFIN_EPS

Gamma_Left = LeftBoundary()
Gamma_Left.mark(boundary_parts, 0)

class FarField(SubDomain):
    def inside(self, x, on_boundary):
        return on_boundary and ( (x[0] > 1.0-DOLFIN_EPS) \
               or (x[1]<DOLFIN_EPS) or (x[1]> 1.0-DOLFIN_EPS) )

Gamma_FF = FarField()
Gamma_FF.mark(boundary_parts, 1)

# Define boundary condition
u0 = Expression("sin(x[1]*pi)")
bcs = [DirichletBC(V, u0, Gamma_Left)]

# Define variational problem
(u, lmbd) = TrialFunctions(W)
(v, d) = TestFunctions(W)

f = Expression("10*exp(-(pow(x[0] - 0.5, 2) + pow(x[1] - 0.5, 2)) / 0.02)")
g = Constant(0.0)
h = Constant(-4.0)
n = FacetNormal(mesh)

F = inner(grad(u), grad(v))*dx + d*dot(grad(u),n)*ds(0) + lmbd*dot(grad(v),n)*ds(0)-\
   (f*v*dx + g*v*ds(1) + h*d*ds(0) + lmbd*h*ds(0))

a = lhs(F)
L = rhs(F)

# Compute solution
A = assemble(a, exterior_facet_domains=boundary_parts)
b = assemble(L, exterior_facet_domains=boundary_parts)
for bc in bcs: bc.apply(A, b)

w = Function(W)
solve(A, w.vector(), b, 'lu')
(u,lmbd) = w.split()

# Plot solution
plot(u, interactive=True)

जो चलता है लेकिन पोइसन समीकरण के समाधान के समान नहीं है। ऐसा लगता है कि संयुक्त फ़ंक्शन रिक्त स्थान के साथ कुछ करना है, लेकिन मुझे गलती नहीं मिल रही है।
मैं सही दिशा में किसी भी मदद या संकेत की सराहना करता हूं - पहले से ही बहुत धन्यवाद!
चीयर्स
मार्कस


मुझे यह अधिकार मिलता है: आपके पास ड्यूरिचलेट और न्यूमैन डेटा दोनों हैं, लेकिन केवल सीमा के हिस्से पर?
क्रिश्चियन क्लैसन

1
जैसा कि मैंने ओपी को समझा है, यह वह ढाल है जो सीमा पर दी गई है। Dirichlet डेटा का उपयोग स्पर्शरेखा व्युत्पन्न लगाने के लिए किया जाता है। मैंने सोचा था कि सीमा के एक हिस्से पर दोनों डिरिक्लेट और न्यूमैन को लागू करना अजीब है लेकिन शायद इस विशेष स्थिति में यह सुसंगत है। तो, समस्या यह है कि सीमा (गुणक के माध्यम से) में ढाल डेटा कैसे लागू किया जाए।
जनवरी

सच है, यह लगातार डेटा देगा, लेकिन आपको अभी भी स्थिरता की कमी की समस्या है, और यह तथ्य है कि आपके पास सीमा के केवल हिस्से पर सीमा की स्थिति है।
ईसाई क्लासन

ठीक है, मुझे उस विशिष्ट शारीरिक समस्या के बारे में कुछ और जानकारी दें जिसे मैं हल करने की कोशिश कर रहा हूं। मेरे पास एक स्थिर चुंबकीय क्षेत्र है जिसे मैं यथोचित रूप से घूर्णी रूप से सममित मान सकता हूं, इस प्रकार 2 डी। मैं एक लाइन के साथ चुंबकीय क्षेत्र घनत्व वेक्टर के रेडियल और अक्षीय घटकों को मापता हूं, रोटेशन के अक्ष के काफी करीब है और रोटेशन के इस अक्ष से दूर इस चुंबकीय क्षेत्र को पर्याप्त दूरी पर देखना चाहता हूं। ड्यूरिचलेट और न्यूमैन बीसी का संयोजन समस्या के करीब पहुंचने का मेरा विचार था जैसा कि जान ने स्पष्ट रूप से वर्णित किया है - सीमा पर ढाल डेटा लगाया।
मार्कस

1
ठीक है, इससे चीजें काफी बदल जाती हैं। तो आपके पास सीमा के पूरे "परिमित" हिस्से पर एक अनबाउंड डोमेन और व्युत्पन्न जानकारी है ?
ईसाई क्लासन

जवाबों:


8

सबसे पहले, एक सामान्य बिंदु: आप एक आंशिक अंतर ऑपरेटर के लिए मनमानी सीमा की शर्तों को निर्धारित नहीं कर सकते हैं और उम्मीद करते हैं कि आंशिक अंतर समीकरण (जिसमें हमेशा ऑपरेटर और सीमा दोनों स्थितियां शामिल हैं) अच्छी तरह से प्रस्तुत किया जाता है, अर्थात, एक अद्वितीय समाधान स्वीकार करता है जो लगातार निर्भर करता है डेटा - यह सब वास्तव में किसी चीज़ की गणना करने की कोशिश के लिए एक आवश्यक शर्त है।

ऑपरेटर के आधार पर, अक्सर काफी वैध परिस्थितियां होती हैं, जिन्हें आप लागू कर सकते हैं (स्वाद पाने के लिए, लायंस और मैजेस द्वारा तीन-वॉल्यूम मोनोग्राफ देखें)। हालांकि, आप क्या करने की कोशिश कर रहे हैं (पूर्ण ढाल निर्दिष्ट करें, जो दोनों एक ही क्रम के लिए ड्यूरिचलेट और न्यूमैन स्थितियों के बराबर है (दूसरे क्रम के दीर्घवृत्त पीडीई के लिए सीमा) उनके बीच नहीं है - इसे इस रूप में जाना जाता है पार्श्व काऊची समस्या, और अशुभ है: इस बात की कोई गारंटी नहीं है कि सीमा डेटा की एक जोड़ी एक समाधान स्वीकार करती है, और यहां तक ​​कि अगर कोई मौजूद है, तो डेटा में छोटे गड़बड़ी के संबंध में कोई स्थिरता नहीं है। (वास्तव में, यह हडामर्ड के अर्थ में मूल बीमार समस्या है, और शास्त्रीय उदाहरण कि आप अच्छी स्थिति के बारे में चर्चा करते समय सीमा की शर्तों को अनदेखा क्यों नहीं कर सकते। आप रैखिक आंशिक अंतर में कैची की समस्या पर उनके व्याख्यान में एक स्पष्ट उदाहरण पा सकते हैं। 1920 के दशक के समीकरण ।)

अब आपकी विशिष्ट समस्या (जो एक XY समस्या का एक पाठ्यपुस्तक उदाहरण हो सकती है )। अगर मैं सही तरीके से समझूं, तो आप पॉइसन समीकरण के लिए एक बाहरी समस्या को हल करना चाहते हैं, और आप दो-आयामी कम्प्यूटेशनल डोमेन लेते हैं । आपके पास पूर्ण डेटा (Dirichlet - स्पर्शरेखा व्युत्पन्न चाल का उपयोग करना - और न्यूमैन) पर (कहना) x = r । यदि आर पर्याप्त रूप से बड़ा है, तो आप एक विकिरण स्थिति को ठीक कर सकते हैं (जो x otic पर आपके समाधान के स्पर्शोन्मुख व्यवहार को निर्धारित करता है ); देखें, जैसे, पुस्तक(r,R)×(a,b)x=rRx लॉन्गिंग यिंग द्वारा बाहरी समस्याओं के लिए संख्यात्मक तरीके । प्रश्न यह है कि आप शेष सीमा भागों के बारे में क्या जानते हैं, और y = by=ay=b

  1. यदि आप सीमा की स्थिति को लागू कर सकते हैं (न्यूमैन, रॉबिन, डिरिक्लेट - जिसे आपको स्पर्शरेखा व्युत्पन्न के एकीकरण में निरंतर ठीक करने की आवश्यकता होगी, वैसे), तो यह आपके ग्रेडिएंट के सामान्य घटकों का उपयोग करने के लिए पर्याप्त है जैसे कि न्यूमैन स्थिति (यदि आप निरंतर मोड को ठीक कर सकते हैं) या एक पेचीदा स्थिति के रूप में स्पर्शरेखा घटकों को एकीकृत कर सकते हैं। चूँकि दोनों स्थितियाँ समान रूप से समान कार्य के अनुरूप होती हैं, इसलिए आपको दोनों तरह से समान समाधान मिलते हैं।

  2. यदि आप और y = b पर व्यवहार नहीं जानते हैं , तो आपके पास वास्तव में पार्श्व कॉची समस्या है, और आप मानक परिमित तत्व विधियों का उपयोग करके समाधान की गणना नहीं कर सकते हैं। इससे निपटने का मानक तरीका अर्ध-प्रतिवर्तीता की विधि है (1960 के दशक में लाटेस और लायन्स द्वारा प्रस्तुत; उनकी पुस्तक देखें ), जिसमें चौथे क्रम की समस्या (जहां आप कर सकते हैं) द्वारा दूसरे क्रम की समस्या का अनुमान लगाने में शामिल हैं; की जरूरत है - दो सीमा शर्तों को निर्धारित करें)। आपके मामले में, इस जगह के लिए राशि होता - Δ यू = द्वारा - Δ यू + ε Δ 2y=ay=bΔu=f कुछ छोटे के लिए ε > 0 । (यह भी एक उपयुक्त मानदंड में अवशिष्ट को कम करने और एक एच 2 नियमितीकरण शब्दजोड़ने के रूप में व्याख्या की जा सकती है, समस्या को उलटा समस्या के रूप में मानने के लिए आपकी टिप्पणी से संबंधित है।) आप यह दिखा सकते हैं कि संगत डेटा (यानी, सीमा की एक जोड़ी)। कि वास्तव में एक समाधान के अनुरूप स्थिति यू प्वासों समीकरण का), अर्ध उलटने समाधान यू ε की ओर अभिसरित यू के रूप में ε 0Δu+εΔ2u=fε>0H2uuεuε0

    चूंकि यह अब में समाधान के साथ एक चौथे क्रम की समस्या है , इसे संख्यात्मक रूप से हल करने का सबसे अच्छा तरीका एक मिश्रित परिमित तत्व सूत्रीकरण का उपयोग कर रहा है जैसे कि डार्डे, हन्नुकैनन और ह्योवेन द्वारा वर्णित पेपर में वर्णित है । ( ऑनलाइन कुछ स्लाइड भी हैं ।) FEniCS का उपयोग करके इस दृष्टिकोण को लागू करना बहुत मुश्किल नहीं होना चाहिए।H2


FEniCS में मिश्रित तत्वों द्वारा कार्यान्वयन के लिए biharmonicडेमो देखें । यह शायद लाप्लास शब्द के बिना है लेकिन मुझे लगता है कि इसे आसानी से जोड़ा जा सकता है।
जान ब्लेच्टा

हाय ईसाई, आपके सुझाव के लिए धन्यवाद! मैं इस धारणा के तहत था कि पोइसन समीकरण सौम्य था जहां तक ​​संख्यात्मक स्थिरता का संबंध है - इस ओर इशारा करने के लिए धन्यवाद। मैंने सुझाव दिया है कि आप इसे पढ़ेंगे। यकीन नहीं होता कि यह चीजें काफी हद तक बदलती हैं, लेकिन जैसा कि टिप्पणी में आगे कहा गया है, ड्यूरिचलेट-न्यूमैन संयोजन शायद भ्रामक है। 'ऑल' जिसकी मुझे तलाश है, सीमा पर ढाल डेटा लगाने का एक तरीका है।
मार्कस

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

ठीक है, कि मुझे कुछ चबाने के लिए देता है। अपने समय, सलाह और धैर्य के लिए सभी को धन्यवाद - और XY के जाल में गिरने के लिए मेरी माफी ...
मार्कस

4

आप यह उम्मीद नहीं कर सकते हैं कि आपकी परिवर्तित समस्या का समाधान पॉसन समस्या का समाधान होगा क्योंकि आपको समस्या को किसी तरह से बदलने के लिए इसे अच्छी तरह से प्रस्तुत करने की आवश्यकता है।

F(u,λ)=Ω12|u|2dxΩfudxΓNgudS+ΓNλ(uuD)dS
(u,λ)V×L2(ΓN)V={vH1;v|ΓD=0}ΓDuDΓNF(u)
0=DF(u)[v]=ΩuvdxΩfvdxΓNgvdSvV,
ΓNΓD
0=DF(u,λ)[v,μ]=ΩuvdxΩfvdxΓNgvdS+ΓNλvdS+ΓNμ(uuD)dS(v,μ)V×L2(ΓN),
Δu=fun=gλΓNΓN

λ|g|

ΓDvVΓD

निष्कर्ष यह है कि आप उम्मीद नहीं कर सकते कि दूसरा आदेश पीडीई दो स्वतंत्र सीमा शर्तों को स्वीकार करेगा।


F(u,λ)DF(u,λ)[v,μ]derivative()

F(u,λ)λL2(ΓN)λL2(Ω)λR


2ufuH1

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

तो यह बल्कि उलटा समस्या है, जो दूर के क्षेत्र के लिए सीमा की स्थिति का पता लगाती है, साथ में जो ड्यूरिचलेट स्थिति है जिसे आप लगा सकते हैं, जिस सीमा पर आप मापते हैं उस पर सामान्य ग्रेडिएंट की पैदावार होती है?
मार्कस

3

आपका दृष्टिकोण काम नहीं कर सकता, निश्चित रूप से कार्यान्वयन के कारण और शायद आपके निर्माण के कारण।

डॉल्फिन में ड्यूरिचलेट की स्थिति का समाधान, अंततः आपके टेस्टस्पेस के डीओएफ को शून्य पर सेट करता है।

यह फेनिक्स-मैनुअल का एक अंश है :

अध्याय 3.3.9 (अंत): एक रेखीय प्रणाली के लिए एक डिरिचलेट सीमा शर्त के आवेदन से स्वतंत्रता के सभी डिग्री की पहचान होगी जिसे दिए गए मूल्य पर सेट किया जाना चाहिए और रैखिक प्रणाली को संशोधित करना चाहिए ताकि इसका समाधान सीमा स्थिति का सम्मान करे। यह ड्यूरिचलेट मानों के अनुरूप मैट्रिक्स की पंक्तियों के विकर्ण पर 1 को शून्य करके और सम्मिलित करके पूरा किया जाता है, और दाएं-हाथ की वेक्टर की संगत प्रविष्टि में डिरिचलेट मूल्य सम्मिलित किया जाता है [...]

vΓm

सारांश में, डॉल्फिन में डिफ़ॉल्ट दिनचर्या का उपयोग करके आप एक ही सीमा पर दोनों Dirichlet और अन्य शर्तों को लागू नहीं कर सकते।

हालाँकि, इससे पहले कि आप इसे अपने कार्यान्वयन में ठीक करने का प्रयास करें, अपने गणितीय सूत्रीकरण के लिए सही परीक्षण स्थान खोजें (जैसा कि @ जन्मे ब्लेचटा ने अभी उल्लेख किया है।)


मैं आपकी बात देखता हूं - मुझे लगता है कि मेरा सूत्रीकरण वास्तव में प्रतिबिंबित नहीं हो सकता है कि मैंने क्या लागू किया है - मेरी माफी। परिवर्तनशील सिद्धांत लेकिन एक धुंधली स्मृति है और मैं फिर से इसके चारों ओर अपना सिर लाने की कोशिश कर रहा हूं। मैंने आगे और पीछे के मैनुअल को पढ़ा है जिसमें फेनसीसीएस कोड के कुछ उदाहरणों के साथ लैग्रेग मल्टीप्लायरों को लागू किया गया है। मुझे लगा कि आप जो मुद्दा उठा रहे हैं, वह यही कारण है कि आप दूसरे परीक्षण फ़ंक्शन 'डी' का उपयोग क्यों करेंगे।
मार्कस

मैं @JanBlechta से सहमत हूं। सबसे पहले आपको गुणक के लिए सही स्थान ढूंढने की आवश्यकता है, जो कि अनौपचारिक है। हो सकता है कि पीडीई बाधा अनुकूलन पर पाठ, जहां एक पक्ष स्थितियों को शामिल करने के लिए गुणक का उपयोग करता है, कुछ उपयोगी विचार देगा। इस पत्र में , एक गुणक का उपयोग समय पर निर्भर डिरिचलेट स्थितियों के लिए किया जाता है।
जनवरी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.