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

Reply via email to