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 all,
I've just discovered SfePy, I'm looking for an example that can be changed
for Darcy flow in porous media:
\vec{q} = - K\nabla \phi
where K is the hydraulic conductivity and \phi the hydraulic head. Could
you please point me to some examples or relevant documentation?
Cheers
Hello sfepy users!
I am using sfepy to do thermal simulations of (BIG!) electric resistors.
Nothing fancy, but i would like to be able to use temperature dependent
thermal conductivities as my system gets very hot.
At the moment I am employing the Laplace weak term:
int(s * \nabla q *\nabla p)
where s is the thermal conductivity, q is the test field parameter and p is
the temperature field
What i want is for s to depend on the temperature. I wonder which strategy
to use:
1: To limit myself to a linear s, i.e. s(q)=s0+\alpha * q.
In that case i guess i can do this:
int(s(q) * \nabla q *\nabla p) = int(s0 * \nabla q *\nabla p) +
int(\alpha * q * \nabla q *\nabla p)
Unfortunately the second term is not implemented. Looking at the
source, this would be some work to implement.
2: To iterate and after each iteration assign new values of s at each
point. This would not be a big deal when doing
time dependent simulations, but steady-state would be much slower to
calculate I guess? An added plus would be
that arbitrary c(q) could be used.
3: Ask for help here, and go "Ahhh! Of course!", when you state the
obvious, easily implementable and fantastic solution.
I have only used sfepy for about a week, and this is the first time i am
messing around with weak formulation FEM, so this
question might be really silly, but I ask anyway: Is the strategy above
completely crazy or am I on the right track?
Kind regards
Bjarke Dalslet
I have responded to the first message (which got posted with some delay, as I
have to approve first-time posts of new mailing list members as an anti-spam
measure).
r.
On 10/26/2012 11:15 AM, Bjarke Dalslet wrote:
> Hello sfepy users.
>
> I am doing thermal simulations of (very big) electric resistors in sfepy.
> Nothing fancy, but as the resistors get very hot, i would like to use a
> thermal conductivity that depends on the temperature.
>
> At the moment i am using the laplace term:
> int( c \nabla q \nabla p)
> where c is the thermal conductivity, q is the test (temperature field) and
> p is the temperature field.
>
> I have come up with two possible approaches to make c dependent on q:
>
> 1: restrict c(q) to a linear function c(q) = c_0 + \alpha q.
> I think this would allow me to do this:
> int( c(q) \nabla q \nabla p) = int( c_0 \nabla q \nabla p) + int( \alpha
> q \nabla q \nabla p)
> That would allow fast steady state solutions, although the second term
> is not yet implementet (and judging from the laplace source, it seems like
> some work to do it).
>
> 2: Iteratively seek the solution, i.e. adjusting c(x,y,z) after each
> timestep. This would be fine when looking at transients, but for steady
> state it would be much slower than solution 1.
>
> I am new to sfepy and also to weak form FEM, so I ask anybody with
> experience in this: Are the above approaches silly, and does a better one
> exist?
>
> Kind regards
> Bjarke Dalslet
>
Hello SfePy,
May be I am wrong, but it seems that there is an issue with the minus sign
before volume integral in Poisson problem definition.
I am trying to solve Poisson problem for the simple analytical function
$u(x) = x^2$, so the $\Delta u = 2$ and the week form is $\int_\Omega u v
\, d\Omega = \int_\Omega 2 v \, d\Omega$.
In SfePy I used the following definition:
dw_laplace.i1.Omega(m.val, v, u) = dw_volume_integrate.i1.Omega(f.val, v)
but I got a quite big relative error: 1e-1
But in case I add the minus sign:
dw_laplace.i1.Omega(m.val, v, u) = -dw_volume_integrate.i1.Omega(f.val, v)
the accuracy of the solution becomes very good, the relative error: 1e-3
So my question, why it is necessary to add minus sign before volume
integral? Yes, I know that the classical Poisson problem is $u(x) = -f(x)$.
May be we assume minus sign implicitly?
The test script demonstrated a problem is in the attachment.
Sincerely,
Alec
Hello SfePy!
I am solving the Poisson problem and during my solution I got the warning:
Warning:
/usr/local/lib/python2.7/dist-packages/sfepy/fem/fields_base.py:1258:
RuntimeWarning: invalid value encountered in divide
data_vertex /= nod_vol[:,nm.newaxis]
The code for this warning:
def post_process(out, pb, state, extend = False):
# evaluate gradient in nodes
grad_data = pb.evaluate('ev_grad.i1.Omega(u)', mode = 'qp')
grad_field = H1NodalVolumeField('grad', np.float64, (3, ),
pb.domain.regions['Omega'])
grad_var = FieldVariable('grad', 'parameter', grad_field, 3,
primary_var_name='(set-to-None)')
*grad_var.data_from_qp(grad_data, pb.integrals['i1']) *
This warning is appeared only for the meshes with superfluous vertices. The
code and the meshes is in the attachment. I think this warning my be
related to the issue with superfluous vertices. See early discussion [1]
and git commit [2]
[1]
https://groups.google.com/forum/?fromgroups=#!topic/sfepy-devel/3Qae2M5bBps
[2]
https://github.com/sfepy/sfepy/commit/4ef0f5dbc7fac15942ba2031debf1296a35eb…
Sincerely,
Alec
Hello SfePy users,
I am solving a Poisson's equation with a free term $b(x)$: $\Delta u(x) =
b(x), \quad x \in Omega$. I take "diffusion/poisson_functions.py" as the
base script for my task. But something in this script is not clear for me.
1. In the script we have two definitions: $p$ is a given function and $f$
is a load parameter. What function does correspond to the free term $b(x)$?
2. The known function $f$ (in the code it is named as "load") is defined in
materials, but the function $p$ is also known, but defined in the
"variables" section. Usually in variable section we define functions to be
find during solution. Why we define known function in the variable section?
3. For the evaluation of the function $f$ ("load") we have a python
function "get_pars(ts, coors, mode=None, **kwargs)". In this python
function we evaluate $f$ only if "mode == qp" condition is true.
For the evaluation of the function $p$ we also have a python function
"get_load_variable(ts, coors, region=None)". But in this function we do not
use "mode" condition.
Why those function $f$ and $p$ are evaluated in different ways?
Thanks,
Alec