[Paraview] calculator tensor field

Cory Quammen cory.quammen at kitware.com
Tue Oct 7 17:02:26 EDT 2014


Gianna,

If I understand correctly, you are trying to multiply a row vector [a,
b, c] by a column vector [d, e, f]^T (where ^T indicates transpose) to
get a matrix. Actually, you are doing this three times and then
summing the resulting matrices to get a tensor matrix. Is that
correct?

If that its the case, I do not believe it is possible to produce a
matrix output. Like Andy, I suggest using the Python Calculator.
Documentation is available here:

http://www.itk.org/Wiki/ParaView/Users_Guide/Python_Calculator

Hope that helps,
Cory

On Tue, Oct 7, 2014 at 2:51 PM,  <Marschmann at stud.uni-heidelberg.de> wrote:
> Dear Utkarsh,
>
> I changed the Result Array names to sigmaXX etc but still get the same error
> message.
> I think the problem is with the product between the two unit vectors.
> Simply calculating for example " iHat*iHat " yields the same error message.
>
> Would you know in general how to form a tensor field in paraview from its
> components?
>
>
> Thanks,
> Gianna
>
>
>
>
>
>
>
>
>
> Quoting Utkarsh Ayachit <utkarsh.ayachit at kitware.com>:
>
>> Gianna,
>>
>> For Calculator filter,  names with "_X", "_Y" have special meaning.
>> Try change Calulators 1-9 to use Result Array names as "sigmaXX",
>> "sigmaYY", etc.
>> Does that work?
>>
>> Utkarsh
>>
>> On Mon, Oct 6, 2014 at 6:31 PM,  <Marschmann at stud.uni-heidelberg.de>
>> wrote:
>>>
>>> Hello Utkarsh,
>>> thanks for looking at it.
>>> Attached is the state file:
>>> - Calculators 1-6 calculate the 6 independent components of the symmetric
>>> stress tensor sigma_ij
>>>
>>> - Calculators 7-9 calculate the traction vectors s_i from the stress
>>> components (s_i = sigma_ij e_j , summation over j implied, e_j basis
>>> vectors)
>>>
>>> Now in another calculator I'd like to compute the stress tensor field,
>>> either directly from the stress components sigma_ij or from the traction
>>> vectors. Both approaches fail with the error message.
>>> The stress tensor is given by
>>> sigma =
>>>
>>> sigma_xx(e_x*e_x)+sigma_yy(e_y*e_y)+sigma_zz(e_z*_ez)+sigma_xy)(e_xe_y+e_ye_x)+sigma_xz(e_xe_z+e_ze_x)+sigma_yz(e_ye_z+e_ze_y)
>>> equivalent to
>>> sigma = s_x*e_x + s_y*e_y +s_z*e_z
>>>
>>> Thanks,
>>> Gianna
>>>
>>>
>>>
>>> Quoting Utkarsh Ayachit <utkarsh.ayachit at kitware.com>:
>>>
>>>> Can you attach a sample data file/state file? That'll make it easier
>>>> to identify the problem and suggest a solution.
>>>>
>>>> Thanks
>>>> Utkarsh
>>>>
>>>> On Sat, Oct 4, 2014 at 4:14 AM,  <Marschmann at stud.uni-heidelberg.de>
>>>> wrote:
>>>>>
>>>>>
>>>>> Hello everyone,
>>>>>
>>>>> I have three displacement field vector components u, v, w in my .vtk
>>>>> file
>>>>> and wish to display the associated stress tensor.
>>>>> I made the following steps:
>>>>>
>>>>> - Apply the filter Gradient Of Unstructued DataSet
>>>>> -> Now have 9 scalars Gradient_0, ... , Gradient 8
>>>>>
>>>>> - compute components of stress tensor via sigma_ij = div(Gradient) +
>>>>> u_i,j
>>>>> -> Now have additional 9 scalars sigma_ij
>>>>>
>>>>> - from this form traction vectors:
>>>>> T_i = sigma_ij e_j   ,where e_j are the unit vectors iHat
>>>>>
>>>>> -> Now have three traction vectors from which the tensor field
>>>>> computation
>>>>> doesnt work:
>>>>>
>>>>> - I do Result = T_1*iHat + T_2*jHat + T_3*kHat for the tensor
>>>>> calculation
>>>>> and get the following error message:
>>>>>
>>>>> ERROR: In
>>>>>
>>>>>
>>>>> /home/abuild/rpmbuild/BUILD/ParaView-v4.0.1-source/VTK/Common/Misc/vtkFunctionParser.cxx,
>>>>> line 201
>>>>> vtkFunctionParser (0x205ddac0): Parse: Error deciding between ambiguous
>>>>> operators
>>>>>
>>>>>
>>>>> ERROR: In
>>>>>
>>>>>
>>>>> /home/abuild/rpmbuild/BUILD/ParaView-v4.0.1-source/VTK/Common/Misc/vtkFunctionParser.cxx,
>>>>> line 300
>>>>> vtkFunctionParser (0x205ddac0): expecting either 2 scalars or a scalar
>>>>> and a
>>>>> vector
>>>>>
>>>>>
>>>>> ERROR: In
>>>>>
>>>>>
>>>>> /home/abuild/rpmbuild/BUILD/ParaView-v4.0.1-source/VTK/Common/Misc/vtkFunctionParser.cxx,
>>>>> line 201
>>>>> vtkFunctionParser (0x205ddac0): Parse: Error deciding between ambiguous
>>>>> operators
>>>>>
>>>>>
>>>>> - Can you help me or tell me gow to visualize the stress tensor from
>>>>> the
>>>>> displacement field?
>>>>> - Alternatively you it would also be good to know how to multiply the
>>>>> result
>>>>> of  filter Gradient of Unstructured DataSet by a scalar value.
>>>>>
>>>>>
>>>>> Many thanks for helping!
>>>>> Gianna
>>>>>
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>>>> http://paraview.org/Wiki/ParaView
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/paraview
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/paraview


More information about the ParaView mailing list