In examples/large_deformation/hyperelastic.py a rotation by displacements is applied. By using a similar function the vectors defining the force couples could be defined for dw_surface_ltr (IMHO). Does it make sense?
r.
----- Reply message -----
From: "Andre Smit" <freev...(a)gmail.com>
To: <sfepy...(a)googlegroups.com>
Subject: Torque
Date: Sat, Dec 18, 2010 05:10
What is the best way to apply a torque load to a model?
--
Andre
--
You received this message because you are subscribed to the Google Groups "sfepy-devel" group.
To post to this group, send email to sfepy...(a)googlegroups.com.
To unsubscribe from this group, send email to sfepy-devel...(a)googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
I am currrently looking for FEM packages to help me solve a system of
beams and columns, basically a collection of 1D bernoulli/timoshenko
line elements.
I started reading SfePy docs and i am getting the idea that doing the
above is not really possible here, am i right?
Are only 2D area elements permitted in SfePy?
Or is there any direct support for solving 1D line elements too..
Cheers
Nimish
Dear SfePy users,
Is it possible to evaluate a solution not only in the FEM mesh node, but in
any arbitrary point in the domain with the given (x, y, z) coordinates?
For example, consider Dirichlet problem for Poisson equation. We apply
essential boundary conditions on the surface nodes and after the problem
has been solved we have the solution vector, i.e. vector of values in the
FEM mesh nodes. But I want to know the solution in point v(x, y, z) that is
not FEM mesh node. What is the best way to obtain solution in this point v?
Sincerely,
Alec Kalinin
I'm working on modeling a next-generation X-ray mirror for which the
shape can be actively controlled by use of many thin piezo-electric
actuators mounted on the mirror surface. The mirror is basically a
glass conical paraboloid with a 1 meter radius and 200 micron
thickness (e.g. http://en.wikipedia.org/wiki/X-ray_optics). Our
project is currently using a proprietary FEA package, but the model
setup and turnaround time is slow, in part because there is only one
part-time engineer who can run it.
SfePy looks like a great package and we're hoping that it could be
used to automate running a large number of different cases. I've
spent some time reading the documentation but I have a few questions
that I hope can be answered before going too much further. I want to
apologize in advance if some of my wording is imprecise, I have a
physics background but this topic is a bit outside my realm...
- Is SfePy appropriate for this problem?
- If a specify a grid with about 800 x 400 points (azimuthal, axial)
and about 10 boundary conditions (corresponding to mount points), what
is the rough order of magnitude of time to compute the solution? Is
it seconds, minutes, hours, or days?
- The linear elastic examples show a problem with a specified
displacement. How do I specify an input force? The piezo essentially
provides a tensile force along the surface.
- Is there a way to specify the problem and solve in cylindrical
coordinates? This is the natural coordinate system.
- How do I specify 6-DOF constraints which correspond to the mirror
mounts?
Thanks in advance for any help!
Tom Aldcroft
Hi,
this is to inform you about the latest updates of the code.
1. The 'hierarchic' branch has been merged into the master. This branch
introduces a hierarchical FE basis into the code and some other tools described
below. Look at [1] for an example. It's not finished, but I have decided to
merge it already, as the general ideas seem to be work, and I needed some of
the developments in the master and vice-versa. The caveats are for now:
- Only 2_4 (rectangles) and 3_8 (bricks) elements are supported.
- Dirichlet boundary conditions are piece-wise linear - the higher order
boundary dofs are set to zero. To allow them, projections to FE spaces on a
region would have to be implemented. We are thinking about redesigning the C FE
core to make tasks such as this easier.
- Surface integral terms are not yet supported.
- The post-processing is more difficult, as a linearization of the solution is
required.
- A test was written that checks the basis continuity between two elements.
This test revealed that the standard nodal basis on 3_8 elements has wrong face
orientations (the functions from the two face sides do not match) for
approximation order >= 3. This will be fixed, hopefully before the next release.
2. New plotting modules / updated scripts:
- script/save_basis.py can be used to visualize a FE basis or its gradient on a
single element or on a (small) mesh.
- New modules sfepy/postprocess/plot_facets.py and
sfepy/postprocess/plot_dofs.py can be used to plot the reference elements and
DOF numberings. Matplotlib with mplot3d is needed there.
r.
[1] http://docs.sfepy.org/doc-devel/examples/diffusion/sinbc.html
Hello SfePy,
During the problem solution I got the error:
sfepy: nls: iter: 0, residual: 5.088014e+00 (rel: 1.000000e+00)
warning: singular matrix
zeroing nan and inf entries...
/usr/lib/python2.7/dist-packages/scipy/sparse/linalg/dsolve/umfpack/umfpack.py:556:
RuntimeWarning: divide by zero encountered in double_scalars
econd = 1.0 / self.info[UMFPACK_RCOND]
warning: (almost) singular matrix! (estimated cond. number: inf)
sfepy: rezidual: 0.01 [s]
I attached the problem description and the mesh for this problem. What is
the reason of the error? May be the mesh is not very detailed?
Sincerely,
Alexander Kalinin
I am pleased to announce release 2012.3 of SfePy.
Description
-----------
SfePy (simple finite elements in Python) is a software for solving
systems of coupled partial differential equations by the finite element
method. The code is based on NumPy and SciPy packages. It is distributed
under the new BSD license.
Home page: http://sfepy.org
Downloads, mailing list, wiki: http://code.google.com/p/sfepy/
Git (source) repository, issue tracker: http://github.com/sfepy
Highlights of this release
--------------------------
- several new terms
- material parameters can be defined per region using region names
- base function values can be defined per element
- support for global options
For full release notes see http://docs.sfepy.org/doc/release_notes.html#id1
(rather long and technical).
Best regards,
Robert Cimrman and Contributors (*)
(*) Contributors to this release (alphabetical order):
Alec Kalinin, Vladimír Lukeš
Hi Alec,
I meant volume integral as an Integral instance=quadrature points, not the volume term :). I will try your file when I get to my laptop.
r.
----- Reply message -----
From: "Alec Kalinin" <alec.k...(a)gmail.com>
To: <sfepy...(a)googlegroups.com>
Subject: How does variables and integrals are evaluated?
Date: Tue, Sep 11, 2012 10:11
Hello!
It seems that the flux shape should be (5235, 4, 1, 1) (4 quadrature
points). So you should use a volume integral in data_from_qp(), that you
use in solving the problem, as extend_cell_data() returns the flux in
the volume elements (averaged from the surface).
Hmm... But the volume integral that is used in problem definition has the "dw_" prefix and cannot be used in evaluation mode. I think only "dq_" and "ev_" terms can be used in "qp" mode. I try to used "ev_grad" term but this term returns gradient (vector). It is also very nice, but I need scalar flux. :) To be more clear I attached my standalone problem definition python script and the mesh
This is probably not
optimal for surface terms (a better way would be to directly average the
face data to face vertices), but it is how things are now.
Yes, yes. This is not the problem to directly average the face elements data to the face vertices, it is about several lines of code. But I want to understand more about sfepy internals. :)
Sincerely,
Alexander
--
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/-/hMvweknCgkkJ.
To post to this group, send email to sfepy...(a)googlegroups.com.
To unsubscribe from this group, send email to sfepy-devel...(a)googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sfepy-devel?hl=en.
Hello SfePy devels,
Could you, please, explain me some SfePy internals?
(1) Question 1. Surface processing.
As I see in examples the 3D meshes contains only volume elements
(tetrahedra) and no surface elements (triangles). But in problem solution
pipeline we need to apply essential boundary conditions on surface nodes
and need to evaluate some surface integrals, for example, for Neumann
boundary conditions. How does SfePy working with surfaces?
For essential boundary conditions, yes, we can take only the far nodes in
tetrahedra. But for the surface integrals we need the surface elements --
triangles. Does SfePy extract boundary triangles from volume tetrahedra?
(2) Question 2. Dimensions of the SfePy arrays.
Consider the postprocesing hook:
def post_process(out, pb, state, extend = False):
electric_field = pb.evaluate('ev_grad.2.Omega(u)', mode='el_avg')
print electric_field.shape
flux = pb.evaluate('d_surface_flux.2.Gamma(m.K, u)', mode='el_avg')
print flux.shape
In my example shapes are:
electric_field: (5235, 1, 3, 1)
flux: (3898, 1, 1, 1)
Could you explain me why the variables are 4-dimensional arrays. My
understanding is following:
1. 1st dimension is the number of the tetrahedra element. 5235 is the total
number of the volume element. By what is 3898? Is it a number of the
tetrahedra which are contains in boundary or is it a number of triangles on
the surface?
2. The 3d dimension is the dimension of variable. The grad is a 3
dimensional vector, the flux is a scalar. But what are the 2nd and 4th
dimensions?
Sincerely,
Alexander.
Hello,
first of all, I would like to thank all the developers for sfepy and
related tools, which is absolutely awsome, mainly because of the great
flexibility.
I am afraid I have a very basic problem which everyone knows how to solve
except of me. I have two points (nodes) and I want to calculate heat
resistance between them. By heat resistance I mean ratio of temperature
difference and heat power, so the unit will be Kelvin per watt, K/W. I
think there are two possible ways:
1) One node has defined temperature. The other node has defined power. Then
I find temperature of the other node. But - how to assign power in watts? I
wanted to get inspired by the example poisson_functions.py, but the "load"
parameter is power density (in watts per cubic meter). Therefore, in one
node there is infinite power density.
2) Both nodes have defined temperature. Now I need to calculate the total
flux over surface surrounding any of the nodes. But how?
Please, could you give me an advice, which of these two ways should I use
and what examples from the documentation is the closest to my problem?
Thank you very much,
Jan Martinek