Hi Vlada,
In the 'ori' branch, I have update FieldVariable.get_global_node_tab() but
noticed a bad convergence of examples/diffusion/subdomains.py. It was present
even before the massive changes of the 'ori' branch - master
(ec602a8162a96926afe09864adfe2e58a08c2503) version behaves in the same manner:
sfepy: nls: iter: 0, residual: 6.173330e+00 (rel: 1.000000e+00)
sfepy: nls: iter: 1, residual: 2.606163e-03 (rel: 4.221649e-04)
If you put "'check' : 2" in the newton solver options, you will see that the
tangent matrix is wrong. Can you check this? If it's a deeper problem, create a
new issue, please.
Thanks,
r.

Hi,
I have finally reimplemented some of the core functionality to allow higher
order elements (uniform order), see the 'ori' branch [1] (the name stands for
'orientation', because the key part that was missing had been the orientation
of faces allowing to define face degrees of freedom).
I tested only the very basic things, so bugs are to be expected. Any testing is
more than welcome, You can try, for example, to modify
examples/diffusion/poisson.py as follows:
- use P3 (cubic) elements
...
field_1 = {
'name' : 'temperature',
'dtype' : 'real',
'shape' : (1,),
'region' : 'Omega',
'approx_order' : 3,
}
...
- increase quadrature order to 3
...
equations = {
'Temperature' : """dw_laplace.3.Omega( coef.val, s, t ) = 0"""
}
...
Similarly, other examples can be tried out.
There are still things missing for it to be really useful:
- higher order quadratures - try to set 'approx_order' : 4 in the example above
and you get 'warp violation' error. This is because the approximation order is
too high w.r.t. the quadrature (3 is currently our highest order for tetrahedrons).
- proper visualization - the higher order degrees of freedom are just thrown
away now - only vertex values are used (or cell values for zero-order
approximations).
- hierarchical finite element basis - the Lagrange polynomial basis that is
used now has very bad properties when the approximation order is increasing,
leading to a matrix with a large condition number.
Any comments/suggestions/help welcome!
r.
[1] https://github.com/rc/sfepy/tree/ori

Hi,
could this be useful? I do not see license at the package site...
r.
-------- Original Message --------
Subject: [SciPy-User] Announcement: Self-contained Python module to write
binary VTK files.
Date: Mon, 29 Nov 2010 09:45:29 +0100
From: Paulo Herrera <pauloa....(a)gmail.com>
Reply-To: SciPy Users List <scipy...(a)scipy.org>
To: scipy...(a)scipy.org
Hello everyone,
This is my first post to this list.
I would like to announce the first release of a Python module I wrote to export
scientific data to binary VTK files. The source code for the module can be
downloaded from its Mercurial repository at bitbucket. To get a copy, type on
terminal window:
hg clone https://pauloh@bitbucket.org/pauloh/pyevtk
PyEVTK (Python Export VTK) package allows exporting data to binary VTK files for
visualization and data analysis with any of the visualization packages that
support VTK files, e.g. Paraview, VisIt and Mayavi. EVTK does not depend on any
external library (e.g. VTK), so it is easy to install in different systems.
The package is composed of a set of Python files and a small C/Cython library
that provides performance critical routines. PyEVTK provides low and high level
interfaces. While the low level interface can be used to export data that is
stored in any type of container, the high level functions make easy to export
data stored in Numpy arrays. In addition, it provides a helper class to create
pvd files that can be imported into Paraview to visualize time dependent data
series.
PyEVTK is released under the GPL 3 open source license. A copy of the license is
included in the src directory.
Please see below for an example of how to use the high level routines. More
examples
are included in the package.
I hope you will find this package useful and I look forward to getting your
feedback.
Paulo
High-level interface example:
=============================
from evtk.hl import imageToVTK
import numpy as np
# Dimensions
nx, ny, nz = 6, 6, 2
ncells = nx * ny * nz
npoints = (nx + 1) * (ny + 1) * (nz + 1)
# Variables
pressure = np.random.rand(ncells).reshape( (nx, ny, nz), order = 'C')
temp = np.random.rand(npoints).reshape( (nx + 1, ny + 1, nz + 1))
imageToVTK("./image", cellData = {"pressure" : pressure}, pointData = {"temp" :
temp} )
_______________________________________________
SciPy-User mailing list
SciPy...(a)scipy.org
http://mail.scipy.org/mailman/listinfo/scipy-user