# Progress Bar

29 views

### Md. Golam Rashed

Aug 18, 2011, 1:16:04 PM8/18/11
As analysis takes quite some time, it'll be helpful if there is a progress bar or progressing % showing.
example:
progress 1%
progress 2%
progress 3%
.
.
.
.
.
.
progress 15%
.
.
etc.

this feature will really help large problem.
is it possible to integrate this feature into sfepy???
Thanks

### Robert Cimrman

Aug 19, 2011, 6:07:44 AM8/19/11
Hi,

this is not possible in general, as we rely on external linear solvers (e.g.
umfpack), that do not support this feature. A progress bar might be feasible
for assembling, but that is in my experience only a minor part of the solving
process - most of the time is spent in the linear solver.

r.

### Md. Golam Rashed

Aug 19, 2011, 12:39:58 PM8/19/11
ok, i got it. it'd be very much helpful to have one.
however, i'm seeking theory behind sfepy. can you help me in this regard?
thanks.

### Robert Cimrman

Aug 19, 2011, 1:17:38 PM8/19/11

Well, the theory is well described in any finite element textbook, and even
on-line (e.g. the site Vladimir mentioned) - it's one of standard methods to
solve PDEs (partial differential equations). SfePy implements the basic version
without mesh adaptivity, and uses, for the moment, the most classical,
Lagrangian, basis for polynomial approximation on elements.

If you are really interested in the actual implementation, currently the best
way is to look at the source code in sfepy/fem, starting with
sfepy/fem/problemDef.py where the ProblemDefinition class is defined. But
before that, go through the tutorial (check especially "Sneak peek: what is
going on under the hood" and "Interactive Example: Linear Elasticity" sections).

There is no real "user" documentation of sfepy.fem yet. It would be nice to
have, but I do not have currently power to do it. But I can try to answer any
particular question, so if you have any, ask... :)

r.

### Md. Golam Rashed

Aug 20, 2011, 4:35:19 AM8/20/11
in solving PDE's which approach has been taken?
Galerkin method?

### Robert Cimrman

Aug 20, 2011, 5:02:40 AM8/20/11
Yes, FEM is a variant of Galerkin method with a special choice of the base - it contains functions with small compact support (tied with the mesh elements) leading to a sparse matrix problem.

r.
--
You received this message because you are subscribed to the Google Groups "sfepy-devel" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sfepy-devel/-/gDygdediVvAJ.
To post to this group, send email to sfepy...@googlegroups.com.
To unsubscribe from this group, send email to sfepy-devel...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.

### Md. Golam Rashed

Aug 20, 2011, 1:13:17 PM8/20/11
OK, so i think anyone with python knowledge can do 3D Finite Element Analysis in sfepy provided that they have the weak formulation of the governing PDE of physical problem and boundary conditions??

### Robert Cimrman

Aug 20, 2011, 1:36:33 PM8/20/11
Yes! Provided the terms used in the weak form of a PDE are already implemented in sfepy. If not, one needs to add them, which may be non-trivial.

r.

From: "Md. Golam Rashed" <rashed...@gmail.com>
Subject: Progress Bar
--
You received this message because you are subscribed to the Google Groups "sfepy-devel" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sfepy-devel/-/ycPnjJ_hkjkJ.

### Md. Golam Rashed

Aug 21, 2011, 9:26:53 AM8/21/11
what extra step should i take in doing time-step analysis? i need to do an analysis which involves 300 time-steps, with 100 constants in each time-step. the problem is a multi-scale mass-heat transfer related.

### Robert Cimrman

Aug 22, 2011, 7:10:55 AM8/22/11

Check out the time-dependent examples, e.g.

examples/diffusion/time_poisson.py (long syntax)
examples/diffusion/laplace_time_ebcs.py (short syntax, changing boundary
condition nodes)

Basically, just define the time-stepping solver, and if it's a dynamic
simulation, add some terms with time derivatives of variables, like dT/dt in
the first example above.

What do you mean by "100 constants"?

r.

### Md. Golam Rashed

Aug 22, 2011, 7:42:24 AM8/22/11
well, technically they are not constants, they are variables with given values. but the values change in each time step, much like coefficient changing with time.

is the time-stepping solver different than the standard solver in sfepy? i thought sfepy has built-in time-stepping function.

### Robert Cimrman

Aug 22, 2011, 7:52:53 AM8/22/11

No, it is standard. The examples I mentioned show how to use it.

r.

### Md. Golam Rashed

Aug 22, 2011, 8:44:34 AM8/22/11
Thanks!
will ask you further if stumbled on again.

### Md. Golam Rashed

Dec 24, 2011, 8:21:59 AM12/24/11
bugging you again, for a really fine mesh and a complex problem, it takes large amount of time by sfepy. and as you've mentioned earlier, a progress bar is not suitable for the external solver of sfepy. but i wonder what if an approximated solving time can be estimated from assembly. From the size of the matrix and the processing power of CPU, can a solving time estimation be made (+/- 10% error)???

### Robert Cimrman

Dec 25, 2011, 11:17:50 AM12/25/11

Well, it really cannot be estimated reliably - the solution time depends
heavily on the condition number of the matrix, and it is possible (as
far as I recall), for a given matrix size and number of nonzeros, to
generate a matrix with arbitrarily high condition number -> solution
time from almost zero to infinity. So one could estimate time for a
particular problem, e.g. Poisson, or elasticity, but there is no general
way. Maybe sfepy could just print "solving..." so that you know you have
to wait?

r.

### Md. Golam Rashed

Dec 26, 2011, 8:39:20 AM12/26/11
well that would be nice, if all else is not possible.
can you make the "solving..." statement a dynamic one?
A 3 second loop, with each second "solving"+ 1 dot will be added, after 3 second loop will be restarted. again...
It'll show us that the program is running and not hanged or stuck.
thanks!

### Robert Cimrman

Dec 27, 2011, 3:24:43 PM12/27/11

Well, the problem is that sfepy cannot print anything when the solver
runs - it's still the same process. To do something dynamic like you
want would mean use threading. I would rather avoid such complication.

To conclude: it's easy to print "solving..." before the solver starts
(e.g. if the matrix size is big enough(?)), but nothing more.

Cheers,
r.

### Md. Golam Rashed

Dec 28, 2011, 12:17:55 AM12/28/11
well, the last thing we want is to make sfepy completed.
so just include the print "solving..." statement.

### Md. Golam Rashed

Dec 28, 2011, 12:02:24 PM12/28/11
correction:
well, the last thing we want is to make sfepy complicated.

### Robert Cimrman

Jan 2, 2012, 6:38:16 AM1/2/12
On 12/28/11 18:02, Md. Golam Rashed wrote:
> correction:
> well, the last thing we want is to make sfepy complicated.

Understood :)

> so just include the print "solving..." statement.

I have added 'verbose' option to Solver class, i.e. base class of all solvers.
Currently, only Newton solver uses it: add "'verbose' : True" to the nls.newton
solver options, and it will print 'solving linear system...'.

r.