To anyone that has some experience with custom/programmable filters, I have a set of 9 arrays from my 'ComputeDerivatives' Filter, and I would like to perform simple math operations on these arrays, to create another set of 9 arrays. I have to do this with 30 sets of data, so a 'brute force' approach would be very timely
In theory, instead of using the in-program Strain selection from 'ComputeDerivatives' (which provides the elements of the infinitesimal strain tensor), I need to formulate my own 'Strain' data (*finite* strain tensor elements), which will have EXACTLY the same format as the in-program Strain data, just each element is calculate slightly differently.. I can show the difference below: Current, infinitesimal strain element calculation, where 'tens' is a 3x3 matrix: tens->SetComponent(0,0, derivs[0]); tens->SetComponent(0,1, 0.5*(derivs[1]+derivs[3])); tens->SetComponent(0,2, 0.5*(derivs[2]+derivs[6])); tens->SetComponent(1,0, 0.5*(derivs[1]+derivs[3])); tens->SetComponent(1,1, derivs[4]); tens->SetComponent(1,2, 0.5*(derivs[5]+derivs[7])); tens->SetComponent(2,0, 0.5*(derivs[2]+derivs[6])); tens->SetComponent(2,1, 0.5*(derivs[5]+derivs[7])); tens->SetComponent(2,2, derivs[8]); and I would need to substitute the math for the finite strain elements: tens->SetComponent(0,0, ( derivs[0] + 0.5*( derivs[0]^2 + derivs[3]^2 + derivs[6]^2)) ); tens->SetComponent(0,1, ( 0.5*(derivs[1]+derivs[3]) + 0.5*(derivs[1]*derivs[2] + derivs[4]*derivs[5] + derivs[7]*derivs[8])) ); tens->SetComponent(0,2, ( 0.5*(derivs[2]+derivs[6]) + 0.5*(derivs[0]*derivs[2] + derivs[3]*derivs[5] + derivs[6]*derivs[8])) ); tens->SetComponent(1,0, ( 0.5*(derivs[1]+derivs[3]) + 0.5*(derivs[1]*derivs[2] + derivs[4]*derivs[5] + derivs[7]*derivs[8])) ); tens->SetComponent(1,1, ( derivs[4] + 0.5*( derivs[1]^2 + derivs[4]^2 + derivs[7]^2)) ); tens->SetComponent(1,2, ( 0.5*(derivs[5]+derivs[7]) + 0.5*(derivs[1]*derivs[2] + derivs[4]*derivs[5] + derivs[7]*derivs[8])) ); tens->SetComponent(2,0, ( 0.5*(derivs[2]+derivs[6]) + 0.5*(derivs[0]*derivs[2] + derivs[3]*derivs[5] + derivs[6]*derivs[8])) ); tens->SetComponent(2,1, ( 0.5*(derivs[5]+derivs[7]) + 0.5*(derivs[1]*derivs[2] + derivs[4]*derivs[5] + derivs[7]*derivs[8])) ); tens->SetComponent(2,2, ( derivs[8] + 0.5*( derivs[2]^2 + derivs[5]^2 + derivs[8]^2)) ); I am NOT a very competent programmer, and was hoping there'd be some way to implement this in the Paraview GUI (perhaps using a programmable python filter?), without having to modify/create code. Can anyone lend a hand to helping me find a simple way to implement this? I would like to stay in paraview, because I am creating figures using Paraview for other aspects of my research. Alternatively, if someone knows a way to import a csv into Paraview, and have it behave exactly like data produced from 'ComputeDerivatives' - in that I wish to use 'Resample with Dataset', then that would be another way to go. Thanks, -- Tim Bhatnagar PhD Candidate Orthopaedic Injury Biomechanics Group Department of Mechanical Engineering University of British Columbia Rm 5000 - 818 West 10th Ave. Vancouver, BC Canada V5Z 1M9 Ph: (604) 675-8845 Fax: (604) 675-8820 Web: oibg.mech.ubc.ca
_______________________________________________ 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://www.paraview.org/mailman/listinfo/paraview