getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-users] Pure Advection Stationary Problem


From: Simone Di Gregorio
Subject: [Getfem-users] Pure Advection Stationary Problem
Date: Thu, 16 Mar 2017 09:11:48 +0000

Dear GetFem users,


I'm dealing with a pure stationary advection problem in 1D straight single branch domain. So the equation is:


 d( v(s)c(s))/ds = 0 


with v(s) velocity field (NOT constant, so it varies with s) and c(s) solute concentration, while s is the arc length of the vessel. The boundary conditions are Dirichlet B.C. in inlet of the vessel


The weak form is:


(\partial_s  \phi, v c)_{\Lambda} + v(\Gamma _{out})c(\Gamma _{out})\phi(\Gamma _{out}) = 0


where \phi is the piecewise linear continuous test function, \Lambda si the domain, \Gamma _{out} is the outlet boundary.


So I build the advection matrix with:


asm_real_or_complex_1_param(M,mim,mf,mf_data,V,rg, "a=data$1(#2);" "M$1(#1,#1)+=comp(Base(#1).vGrad(#1).Base(#2))(:,:,i,j,p).a(p);")


Then I subtract to the last element of the matrix (in position N,N) the value of v(\Gamma _{out}).

As expected the solution is unstable, so i added an artificial diffusion in the following way:


+D(\partial_s  \phi, \partial_s  c)_{\Lambda} 


with D= beta*max(v(s))*h, beta large enough and h dimension of the element, and imposing dc/ds=0 over the boundary. I assembled this with 

asm_real_or_complex_1_param(A,mim,mf,mf_data,D,rg, "a=data$1(#2);" "M$1(#1,#1)+=comp(vGrad(#1).vGrad(#1).Base(#2))(:,i,j,:,i,j,p).a(p);")


The solution becomes stable.


The problem is that:

-the solution is always the same for very different function of v(s):

-if D is not very high in the first elements of the vessel, the solution is constant, whereas it varies in the last element(this happens because add v(\Gamma _{out})

otherwise the solution would be costant everywhere)

-if D is quite high the solution is a simple exponential, but is not sensitive to variation of v


From an analytical solution I expect that v(s)c(s) remain constant so c(s) should vary along the vessel dependently on value of v(s).


So it's like the problem doesn't feel the variation of velocity and I can't understand what i'm doing wrong.


Thanking you in advance, i hope i was clear enough in my explanation


Best Regards


Simone Di Gregorio 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]