Take the 2-minute tour ×
Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. It's 100% free, no registration required.

I'm working with an elliptic reaction diffusion PDE of the form

$$-k\nabla^2u+cu=0$$

I've noticed that when the reaction term dominates over the diffusion (i.e. $c>>k$), the true (exact) solution has sharp gradients near the boundaries. I've also noticed that my numerical approximations via finite difference, finite volume, and standard galerkin method do not approximate the solution well using equi-spaced points with a spatial stepsize significantly larger than the sharp boundary layer.

I know that I can overcome this problem by adapting my mesh/nodes to be more densely near the boundary layers, but this presupposes that I know exactly where these layers are. Is there a more generalized approach to this problem which can yield good approximations without apriori knowledge. Ideally, I'm hoping there is a method that allows for a uniformly spaced grid that can get a better approximation than the naive implementations of FDM, FVM, and FEM, without making the mesh extremely fine.

I'm not sure if this is possible, but if anyone knows of any alternative methods that I can try, I'm open to suggestions! :)

share|improve this question
    
I dont have an answer but another question. Are discontinuous galerkin methods useful for such problems ? –  Praveen Chandrashekar Feb 22 at 16:45
1  
DGFEM is as bad as CGFEM if you cannot resolve the solution on the mesh you're on. This is exactly the case here. –  Wolfgang Bangerth Feb 24 at 5:35

2 Answers 2

Adaptive refinement. There are even optimal error estimators for your exact problem, though you can't go too wrong on this problem by dividing cells where the magnitude of the gradient is largest.

share|improve this answer

IF you know a priori where your boundary layer is located (it could be a big IF when $k$ and $c$ become more general), you could enrich your approximation space with a function capturing the layer (see GFEM or MSFEM).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.