6
$\begingroup$

I have a low speed flow with a high voltage discharge occurring within it between two spherical electrodes. We have quite a bit of data from the experiment and have performed 0-D modeling of the chemical kinetics within the plasma discharge, however our next step is to expand the modeling with 1 or 2 spacial dimensions.

One issue with this is that we have a shockwave propagating from the plasma and one of the electrodes that moves downstream. To properly capture this shockwave at all time with a single mesh would require a very fine meshing for the first couple centimeters around the plasma.

My question is, since we have Schlieren images of the shockwave, and know where it is in time, would it be worth while to recompute a mesh for each time step with refinement only where the shock should be, interpolate onto it, and then advance the time rather than using a static mesh. The static mesh would avoid two of the previous steps, however would likely require time advancing on meshes with significantly more points than the dynamic case.

$\endgroup$
  • $\begingroup$ I guess that is more my question, as to at what point would the adaptive mesh run fast enough to be worth while. Part of the problem is that I have anywhere from 10-50 unknowns per mesh point, so my matrix sizes get large very quickly. $\endgroup$ – Godric Seer Jul 9 '12 at 20:41
  • $\begingroup$ I am the programmer, and as an incoming grad student that cost would be fairly low. The computer will be a new work station (I won't have access to it until early august so I don't have specifics). For this specific project the code will only be run a couple times but my long term project is to build modelling capabilities for this lab, which is currently almost completely experimental. The 0-D code takes 10-15 minutes to run on a workstation currently, so once I apply that to tens or hundreds of thousands of mesh points, the run time will likely be on the order of days or weeks. $\endgroup$ – Godric Seer Jul 9 '12 at 21:22
6
$\begingroup$

Adaptive mesh refinement is a very useful technique for improving accuracy around shocks, since any method will be at most first order accurate near solution discontinuities.

The downside of implementing AMR is that it will add substantial complexity to your code and thus require significant additional development and maintenance time. I would only do the work of implementing AMR if your target problems cannot be solved in an acceptable length of time without it. I think it makes sense to implement a uniform grid solver first and see just how slow it is, since you would need a verified uniform grid solver as a starting point for your adaptive code anyway.

You probably already know this: you'll need to be careful about maintaining conservation on the adaptive mesh. For that (and for a basic understanding of AMR), consult the seminal paper of Berger and Oliger.

$\endgroup$
  • $\begingroup$ I didn't even think about the conservation issue. You refer to the shock as a singularity, and I am wondering is it just assumed to be computationally unfeasible to have a fine enough mesh near a shock to properly capture it? $\endgroup$ – Godric Seer Jul 9 '12 at 23:40
  • $\begingroup$ @GodricSeer I can't tell you if the thing you're calling a "shockwave" is a singularity, since I don't know the equations you're solving. But in mathematical terminology, "shock" usually means a discontinuity. If you have viscous regularization, it will not be a singularity and it is typically referred to as a "viscous shock". $\endgroup$ – David Ketcheson Jul 10 '12 at 10:20
2
$\begingroup$

I think your suggestion makes a lot of sense. It even avoids that you have to define a refinement criterion to decide where to refine and where to coarsen.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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