Dear Jiaqi,
Besides the literature suggested by Daniel, you should also read the paper
J.L. Guermond, P. Minev, J. Shen, An overview of projection methods for
incompressible flows, Comput Methods Appl Mech Engrg 195, 2006.
Section 3.5 explains this question.
As a more general remark to your question I want to remind you that this
forum is not primarily for asking questions about methods and their
implications (go read the relevant papers) but rather more technical
aspects regarding the implementation of finite element discretizations
in deal.II. See also here:
https://groups.google.com/forum/#!topic/dealii/GRZMUTLIm2I
Best,
Martin
On 03.08.2016 04:09, Jiaqi ZHANG wrote:
Hello David,
Thank you for the answer. I know Step-35 doesn't implement velocity
correction, which
is still confusing me. Without correcting the velocity, it is not
divergence free, does it make
any sense?
Best,
Jiaqi
2016-08-02 16:37 GMT-04:00 David Wells <drwe...@vt.edu
<mailto:drwe...@vt.edu>>:
Hi Jiaqi,
I have to admit that it has been about a year since I last really
looked at step-35 and I do not know the answer off the top of my
head for this. I saw that Daniel responded to this question
elsewhere; was that enough to figure things out?
Thanks,
David Wells
On Friday, July 29, 2016 at 9:19:29 PM UTC-4, Jiaqi ZHANG wrote:
Hello David Wells,
Sorry to bother you, but I have a problem about Step-35. I
have posted the question
a few days ago, and no one answered me, so I have to search in
the mailing list and found
that you have been using it a lot. I was wondering if you
could help me, and the following is
my question:
I read the references listed there and some other papers about
projection methods,
and know that after obtaining the intermediate values for
velocity, say v_n, we need to
correct the velocity by u_n = v_n - grad(2dt/3 phi_n), which
is mentioned in the introduction of Step-35,
but it seems that Step-35 only corrects the pressure, and I
cannot find anything in the code that implements the above
equation.
However, when I correct the velocity at every time step, the
algorithm turns out to be divergent (iterating more than 1000
times at some time step).
I am very confused, did I misunderstand the algorithm or the code?
Thanks in advance.
Best,
Jiaqi
在 2015年3月17日星期二 UTC-4下午8:14:21,David Wells写道:
Hi Joaquin,
I used step-35 a lot, so I may be able to assist you here.
For the velocity inflow, are you sure that what you have
will be zero flow at the edges? The XY slices don't look
quite circular to me, so this may be a problem if you
refine the mesh. Since you are using GMSH, it may be
easiest to use GMSH's extrusion abilities to extrude a
circle along the z axis to solve this.
I believe you handled the pressure correctly (as long as
the domain starts at z = 0 and ends at z = 10).
At least as of a few months ago, step-35 could not run in
3D due to a lack of a compressed sparsity pattern. I fixed
this in my own copy of step-35 (see
http://www.github.com/drwells/step-35a) (yeah, I know I
should submit a patch...). I tweaked the preconditioners
to improve performance, so my version might be useful to
look at.
Another thing you might want to look at is how Abner
implemented labels for the different boundaries. According
to my experiments (see
https://github.com/drwells/dealii-step-35a/blob/master/cylinderextruded.geo):
1 is the no-slip edges
2 is the inflow
3 is the outflow
4 is the cylinder (may not apply for you)
If your mesh file does not label things correctly then
things will get weird. I hope that this is helpful.
Thanks,
David Wells
On Tuesday, March 17, 2015 at 6:08:02 PM UTC-4, Joaquin
wrote:
Hi,
I am trying to run step-35 for the unsteady
incompressible viscous flow in a pipe, for 3D case.
The mesh file I used is attached. The graph of results
is attached. The expected results for any time should
be paraboloid (or parabolic in 2D), but, I can not get
that. The changes I did are:
*1. namespace EquationData:
* template <int dim>
double Velocity<dim>::value (const Point<dim> &p,
const unsigned int) const
{
if (this->comp == 0)
{
const double Um = 1.5;
const double R = 2.;
return Um*(1 - (p(0)*p(0)+p(1)*p(1))/(2*R*R));
}
else
return 0.;
}
*Through the pipe pressure drop **is linear (**I do
not how to make changes here):*
template <int dim>
double Pressure<dim>::value (const Point<dim> &p,
const unsigned int) const
{
return 10.-p(2);
}
*2. *
template <int dim>
void
NavierStokesProjection<dim>::
create_triangulation_and_dofs (const unsigned int
n_refines)
{
GridIn<dim> grid_in;
grid_in.attach_triangulation (triangulation);
{
std::string filename = "*cilindro.msh*";
std::ifstream file (filename.c_str());
Assert (file, ExcFileNotOpen (filename.c_str()));
grid_in.read_msh (file);
}
* 3. *
int main()
{
try
{
using namespace dealii;
using namespace Stepw3;
RunTimeParameters::Data_Storage data;
data.read_data ("parameter-file.prm");
deallog.depth_console (data.verbose ? 2 : 0);
NavierStokesProjection<3> test (data);
test.run (data.verbose, data.output_interval);
}
.
.
.
return 0;
}
4.
template <int dim>
void NavierStokesProjection<dim>::assemble_vorticity
(const bool reinit_prec)
{
Assert (dim == 3, ExcNotImplemented());
if (reinit_prec)
.
.
Into the parameter file:
- Set n_of_refines = 1
- Set max_iterations = 5000 # maximal number of
iterations that GMRES must make
Please, can someone give me some guidelines to achieve
my goal?, I have one week to present this easy step
(for me it is difficult). I have studied the
projection step method, but, the details I can't
understand very well yet. (The boundary conditions
are: at r = 0 then v = vmax; r = R then v = 0, Initial
condition: t = 0 then v = 0).
thanks in advance,
Joaquin
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google
Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to dealii+unsubscr...@googlegroups.com
<mailto:dealii+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.
--
Jiaqi Zhang
Graduate student
Department of Mathematics
Virginia Tech
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google
Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to dealii+unsubscr...@googlegroups.com
<mailto:dealii+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.