`j`

: Next unread message`k`

: Previous unread message`j a`

: Jump to all threads`j l`

: Jump to MailingList overview

Patricia Garcia Cañadilla

6 Jun
2016
6 Jun
'16

9:27 a.m.

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 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), }

Attachments:

- attachment.html (text/html — 3.3 KB)