আমার পোয়েসন সমীকরণ দ্বারা দুটি মাত্রায় নিয়ন্ত্রিত একটি শারীরিক সমস্যা রয়েছে আমি দুই গ্রেডিয়েন্ট উপাদান পরিমাপ আছে ∂ তোমার দর্শন লগ করা / ∂ এক্স এবং ∂ তোমার দর্শন লগ করা / ∂ Y সীমানা কিছু অংশ সহ, Γ মি , তাই চাপিয়ে চাই ∂ তোমার দর্শন লগ করা
স্পর্শিনী গ্রেডিয়েন্ট উপাদান, , আমি শুধু সংহত করতে পারেন এবং তারপর একটি Dirichlet শর্ত মাধ্যমে জোরদার করা, যেমন যে ∫Γমি∂তোমার দর্শন লগ করা একই সাথে সাধারণ উপাদান চাপিয়ে দেওয়ার জন্য, ∂ u
সুতরাং আমি মনে করি পরিবর্তিত রূপটি তখন ∫ Ω ∇ u ⋅ ∇ v is সম্পর্কিত সমস্যা সম্পর্কিতhttps://answers.launchpad.net/fenics/+question/212434https://answers.launchpad.net/fenics/+Qtionসম্পর্কিত তথ্য থেকে একত্রিত করার চেষ্টা করে আমি দীর্ঘ সময় ব্যয় করেছি / 216323
তবে আমি কোথায় ভুল করছি তা এখনও দেখতে পাচ্ছেন না। আমার সমাধানের প্রচেষ্টা এখনও অবধি:
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)
যা চলে তবে একটি শোরগোলের ফলাফল দেয় যা মোটেই কোনও পইসন সমীকরণের সমাধানের মতো নয়। এটি সম্মিলিত ফাংশন স্পেসগুলির সাথে কিছু করার আছে বলে মনে হচ্ছে তবে আমি ভুলটি খুঁজে পাচ্ছি না।
আমি সঠিক সাহায্যে কোনও সহায়তা বা পয়েন্টারকে প্রশংসা করব - ইতিমধ্যে অনেক ধন্যবাদ!
চিয়ার্স
মার্কাস