Hello!
It's a great tool you built there! I'd like to use it for some kind of
topology optimisation.
Is there an "idiomatic" way to set the material parameters of individual
nodes?
Thank you very much!
JonnyB
Dear Robert,
I have a 2D body of hyperelastic material which contracts and I would like
to compute the total force developed by the body from the cauchy stress. I
am trying to follow some of your indications I found in this group, but I
still couldn't make it works. Could you please help me to fix the problem?
I am getting the following error:
key = (region.name, integral.order, integration)
AttributeError: 'dict' object has no attribute 'name'
I am trying to do the following, inside …
[View More]stress_strain post-processing
function:
def stress_strain(out, problem, state, extend = False ):
from sfepy.base.base import Struct
from sfepy.mechanics.tensors import StressTransform
from sfepy.mechanics.tensors import transform_data
from sfepy.discrete.common.mappings import get_normals
ev = problem.evaluate
field = problem.fields['displacement']
region = problem.domain.regions['Gamma']
integral = problem.integrals['i2']
n = get_normals(field,integral,regions)
stress = ev('dw_tl_fib_a.1.Omega(f1.fmax, f1.eps_opt, f1.s, f1.fdir,
f1.act, v, u )',mode='qp', term_mode= 'stress');
F = ev('ev_def_grad.1.Omega(u)',mode='el_avg');
transform = StressTransform(F)
Cstress = transform.get_cauchy_from_2pk(stress)
T = Cstress*n;
Force = ev('ev_surface_integrate.2.Gamma(T)')
And here it is part of the problem configuration file.
fields = {
'displacement': ('real', 'vector', 'Omega', 1),
}
materials = {
'solid' : (None, 'get_elastic_pars'),
'load' : (None, 'linear_tension'),
'f1' : 'get_pars_fibres1',
}
variables = {
'u': ('unknown field', 'displacement', 0),
'v': ('test field', 'displacement', 'u'),
}
regions = {
'Omega' : 'all',
'Fix1' : ('vertices in x < %.10f' % (fix_point + eps2), 'facet'),
'Fix2' : ('vertices in x > %.10f' % (fix_point - eps2), 'facet'),
'Fix' : ('r.Fix1 *v r.Fix2', 'facet'),
'Gamma' : ('vertices of surface','edge'),
}
ebcs = {
'fixb' : ('Fix', {'u.all' : 0.0}),
}
integrals = {
'i1' : ('v', 1),
'i2' : ('s', 2),
}
[View Less]
I am trying to model Stokes flow at very high viscosities (~10^20), from my results it looks like I cannot achieve this and am better suited using viscosities of ~10^5 or so. I know there is this older post [1] which states:
"A word of warning though: SfePy does not
have a dedicated Navier-Stokes solver (the Newton (+ and direct) solver use
that is in the navier_stokes.py example is rather naive, and works for small
problems with only, with viscosity "high enough")"
Has there been a …
[View More]different solver implemented since this was posted? If not, what do you recommend to work with such large viscosities?
Thank you
[1] "Problem with the mesh while trying to solve the Navier Stokes equations with sfepy"
[View Less]
Hello there! First of all let me just say that SfePy is such an amazing software and is helping the visualization and solving equations for my research immensely without having to pay the exorbitant amount of money for a comparable software.
After familiarizing myself with creating meshes, and running different simulations (in my case mostly Navier-Stokes) I was attempting how to create a way to simulate the Brusselator equations and attempted to create two new terms that would model …
[View More]these equations. After following the very nice tutorial in the Developer's Guide, I mimicked all of the other term files and placed a file "terms_brussels.py" into the terms folder just as the other terms files are and I kept getting errors that there were no such terms as the ones I had made. I also attempted to (rather roguishly) append my new terms into a pre-existing term file. This could just be stupidity or naivety on my part, but how would one go about implimenting a new term that they had made. I have tried looking for more information in the documentation so I apologize if this question is covered there.
Cheers,
Gregory
[View Less]
I am pleased to announce release 2018.2 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 or by the
isogeometric analysis (limited support). It is distributed under the new BSD
license.
Home page: http://sfepy.org
Mailing list: https://mail.python.org/mm3/mailman3/lists/sfepy.python.org/
Git (source) repository, issue tracker: https://github.com/sfepy/sfepy…
[View More]Highlights of this release
--------------------------
- generalized-alpha and velocity Verlet elastodynamics solvers
- terms for dispersion in fluids
- caching of reference coordinates for faster repeated use of probes
- new wrapper of MUMPS linear solver for parallel runs
For full release notes see http://docs.sfepy.org/doc/release_notes.html#id1
(rather long and technical).
Cheers,
Robert Cimrman
---
Contributors to this release in alphabetical order:
Robert Cimrman
Lubos Kejzlar
Vladimir Lukes
Matyas Novak
[View Less]