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
>>>>>> [email protected]
>>>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>>>
>>>>
>>>> _______________________________________________
>>>> DOLFIN-dev mailing list
>>>> [email protected]
>>>> http://www.fenics.org/mailman/listinfo/dolfin-dev
>>>
>>
>
_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev