← Back to team overview

dolfin team mailing list archive

Re: is anisotropy supported?

 

On 01/12/08 10:38 AM, Garth N. Wells wrote:


Bartosz Sawicki wrote:
On 01/12/08 09:33 AM, Garth N. Wells wrote:


Bartosz Sawicki wrote:
On 01/12/08 09:07 AM, Garth N. Wells wrote:

Bartosz Sawicki wrote:
Hi all,

I can't find anything in the manuals, any example in the demo directory and even google is silent like a grave, when asked for "anisotropy site:fenics.org".
Does it mean that anisotropy is not supported by FEniCS?

Can you be more specific on what you have in mind?

My question is, if anyone has already tried to solve any anisotropic problem with fenics?

One of the problems, which come to my mind is that for anisotropic material I need at tensor function for material property. Can FFC handle this?


Just define the equation you want to solve and try compiling it with FFC. For an anisotropic solid, part of this will involve defining the constitutive model. The DOLFIN library shouldn't need to be (nor should it be) aware of the details of the constitutive model.

Yes, I know that, but there is a problem with anisotropic material property which is in general case described by tensor.

Let's look on example. Simple Poisson equation form:

element = FiniteElement("Lagrange", "tetrahedron", 1)
v = TestFunction(element)
u = TrialFunction(element)
f = Function(element)
g = Function(element)
k = Constant("tetrahedron")
a = k*dot(grad(v), grad(u))*dx
L = v*f*dx + v*g*ds

In case of anisotropy, k (material property) shouldn't be "scalar constant", but rather "tensor constant" over the element.

For Poisson I can manage with "vector constant", but that's definitely not a general approach:
k = VectorConstant("tetrahedron")
a = (k[0]*D(v,0)*D(u,0) + k[1]*D(v,1)*D(u,1) + k[2]*D(v,2)*D(u,2))*dx

How would you advice to describe tensor function or tensor constant in the form? Is it possible?


As Anders suggested, if you have a second-order tensor you need to flatten it into a vector. This is done extensively in the FEniCS Apps plasticity solver,

    http://www.fenics.org/wiki/FEniCS_Plasticity

It is a good place to look for examples.

Thanks for your answer.
So I will split my tensor into vectors and a everything should work.

BArtek



Garth


BArtek



Garth

BArtek


Garth

Strange, this seams to be quite easy to develop. Or maybe just no one needed that feature so far.

BArtek
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev






References