|
[Sponsors] |
July 11, 2013, 08:18 |
|
#21 |
New Member
Christian Weiß
Join Date: Jul 2013
Posts: 4
Rep Power: 13 |
hi
thanks for your reply. I´m going to try this. meanwhile i got a hint to use the calculator filter to add an radius column to each point an then use the contour filter for only showing data at a certain radius. after i got that i flattened the "slice" with an caltulater doing something like this Code:
0*iHat+(asin(coordsY/(coordsX^2+coordsY^2)^(1/2))*(coordsX^2+coordsY^2)^(1/2))*jHat+coordsZ*kHat with best regards Christian |
|
July 23, 2013, 00:56 |
|
#22 |
Senior Member
|
p, li { white-space: pre-wrap; } Hi
it works for me here. try this Code:
from paraview import vtk import numpy as np pdi = self.GetPolyDataInput() c2p=vtkCellDataToPointData() c2p.SetInputData(pdi) c2p.Update() pdi.GetPointData().AddArray(c2p.GetOutput().GetPointData().GetArray(0)) pdo = self.GetPolyDataOutput() newPoints = vtk.vtkPoints() numPoints = pdi.GetNumberOfPoints() for i in range(0, numPoints): coord = pdi.GetPoint(i) x, y, z = coord[:3] if x > 0: r = np.sqrt(x*x+y*y) t = np.arctan(x/y) + 0.5 * np.pi if y < 0: t = t + 1* np.pi else : r = np.sqrt(x*x+y*y) t = np.arctan(x/y) + 1.5* np.pi if y > 0: t = t - 1* np.pi newPoints.InsertPoint(i, r, t, 12*z) pdo.SetPoints(newPoints) #pdo.GetCellData().AddArray(pdi.GetCellData().GetArray(0)) pdo.GetPointData().AddArray(pdi.GetPointData().GetArray(0)) Last edited by waynezw0618; July 23, 2013 at 05:56. |
|
July 23, 2013, 05:57 |
this is the results
|
#23 | |
Senior Member
|
here is the results from the code
Quote:
|
||
October 23, 2013, 07:30 |
Slice with geometry
|
#24 |
New Member
Abdalla
Join Date: Oct 2013
Posts: 7
Rep Power: 13 |
Hi all,
first of all, i am a beginner in using paraview. here at work i have to do some postprocessing for a motor flow simulation. Actually i have to test how to slice with a geometry. I have seen and also successfully tried to cylinder-slice the flow using the programmable filter as shown at the beginning of this thread. Since the programmable filter can not handle complex geometries i am wondering if i can use a CAD-Geometry (the bend cylinder is an .stl geometry file) to slice with. best regards, Abdalla |
|
October 26, 2013, 11:42 |
|
#25 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Greetings Abdalla and welcome to the forum!
The programmable filter is only used because the cylinder shape is not present in the "Slice" filter. In your case, it's different and somewhat easier to do. Simply load up both data sets (the CFD results and the slice surface) and use the "Resample with DataSet" filter. I've finished just now writing the following post, which explains in more detail how to do this: http://www.cfd-online.com/Forums/par...tml#post459139 post #4 Best regards, Bruno
__________________
|
|
February 11, 2014, 10:18 |
Get time in a Programmable Filter paraview 3.14
|
#26 |
New Member
German Blesio
Join Date: Feb 2014
Posts: 2
Rep Power: 0 |
Hi to everyone. I'm new in Paraview (start learning this month for an intership) and I have some complications. I need to program a filter to change over time. I used
Code:
t = inputs[0].GetInformation().Get(vtk.vtkDataObject.DATA_TIME_STEP() Thank you very much, and I'm sorry if I have any spelling/gramatical mistakes |
|
February 11, 2014, 15:43 |
|
#27 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Greetings gerble and welcome to the forum!
I don't have time to test this right now, but some time ago I wrote/updated this post: http://www.cfd-online.com/Forums/ope...tml#post446333 post #6 After some further developments on the topic, the resulting conclusion was that the only guaranteed way to get the time in all ParaView versions was to use this: Code:
GetAnimationScene().TimeKeeper.Time Code:
from paraview.simple import * Best regards, Bruno
__________________
|
|
February 11, 2014, 23:50 |
|
#28 |
New Member
German Blesio
Join Date: Feb 2014
Posts: 2
Rep Power: 0 |
Unfortunatly it doesn't work out. I have tried in a Windows 7 system and in a Debian base computer. What happen is that when executing the paraview.simple import this messages appears: "<string>:1: SyntaxWarning: import * only allowed at module level" and the result of GetAnimationScene().TimeKeeper.Time is 0.0 . Before writing in this forum I tried another sentences that requieres this definition and this error always appears. If I don't write that sentece, if I only try to get the time an error appears informing that 'GetAnimationScene' is not defined.
On the other hand, I was thinking on define a variable in the python code so I can later modified through the "Animation View". It would consume more memory to make de animations (I think) but it will probably work equally to what I was trying. Is there a way of doing this? Sorry if I changed the issue of the Thread too much. Thank you very much for your answer! Last edited by gerble; February 12, 2014 at 12:47. Reason: spelling mistake |
|
February 16, 2014, 13:10 |
|
#29 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Hi German,
After doing some trial-and-error-and-research, this programmable filter seems to work in ParaView 3.12.0: Code:
def GetUpdateTimestep(algorithm): """Returns the requested time value, or None if not present""" executive = algorithm.GetExecutive() outInfo = executive.GetOutputInformation(0) if not outInfo.Has(executive.UPDATE_TIME_STEPS()): return None return outInfo.Get(executive.UPDATE_TIME_STEPS(),0) # This is the requested time-step. This may not be exactly equal to the # timesteps published in RequestInformation(). Your code must handle that # correctly req_time = GetUpdateTimestep(self) input = self.GetInputDataObject(0, 0) inp_copy = input.NewInstance() inp_copy.ShallowCopy(input) inp_copy.UnRegister(None) cutter = vtk.vtkCutter() transf = vtk.vtkTransform() transf.RotateX(90) cyl = vtk.vtkCylinder() cyl.SetCenter(0,0,0) cyl.SetRadius(0.1*(0.5+req_time)) cyl.SetTransform(transf) cutter.SetCutFunction(cyl) cutter.SetInput(inp_copy) cutter.Update() self.GetOutputDataObject(0).ShallowCopy(cutter.GetOutputDataObject(0))
As for global variables, they simply don't work, because the Python workspaces are completely independent, namely the ones on each filter and on the main Python shell. Best regards, Bruno
__________________
|
|
May 26, 2014, 09:07 |
|
#30 | |
New Member
Christoph Rosebrock
Join Date: Jun 2010
Posts: 1
Rep Power: 0 |
Hello everyone,
I was looking for a possibility to create radial cuts and the solution presented by Bruno seemed to be a good solution. Using Paraview 4.1.0 I got the same error like akashjangid Quote:
Code:
cutter.SetInput(inp_copy) Code:
cutter.SetInputData(inp_copy) Thanks to all of you. Christoph |
||
August 7, 2014, 08:59 |
|
#31 |
New Member
Stefano Rolfo
Join Date: Aug 2014
Location: UK
Posts: 3
Rep Power: 12 |
hi Bruno
i have also try this scirpt, but in my case is not working. My output is in ensight format and i had to modify the script in order to deal with Multiblock Dataset. With the following script i don't get any error but the output is empty. Here my code Code:
def cut_cylinder(input_block, output_block): inp_copy = input_block.NewInstance() inp_copy.ShallowCopy(input_block.VTKObject) inp_copy.UnRegister(None) cutter = vtk.vtkCutter() transf = vtk.vtkTransform() transf.RotateX(90) cyl = vtk.vtkCylinder() cyl.SetCenter(0,0,0) cyl.SetRadius(0.04) cyl.SetTransform(transf) cutter.SetCutFunction(cyl) #cutter.SetInputConnection(inp_copy.GetOutputPort()) cutter.SetInput(inp_copy) #cutter.SetInputData(inp_copy) #cutter.ShallowCopy(inp_copy) cutter.Update() self.GetOutputDataObject(0).ShallowCopy(cutter.GetOutputDataObject(0)) #output_block.ShallowCopy(cutter.GetOutputDataObject(0)) #============================================================================================ from paraview import vtk from paraview.vtk.dataset_adapter import MultiCompositeDataIterator import math from paraview.numpy_support import vtk_to_numpy from paraview.vtk.dataset_adapter import numpyTovtkDataArray, vtkDataArrayToVTKArray import numpy as np iter = MultiCompositeDataIterator([inputs[0], output]) for input_block, output_block in iter: cut_cylinder(input_block,output_block) Code:
cutter.SetInput(inp_copy) Code:
cutter.SetInputData(inp_copy) Does anyone know how i can make this script working. Thanks very much Stefano I get Last edited by wyldckat; August 11, 2014 at 11:33. Reason: [QUOTE] -> [CODE] |
|
August 16, 2014, 14:01 |
|
#32 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Greetings Stefano and welcome to the forum!
Can you provide a small example file with which I can reproduce this error? In addition, I suggest that you use the "Merge Blocks" filter before applying this particular programmable filter, so that it makes it easier to at least test this programmable filter. Beyond this, I suspect the problem is that you did not properly calibrate the settings for the position of the cylinder, namely these values were not changed: Code:
transf.RotateX(90) cyl.SetCenter(0,0,0) cyl.SetRadius(0.04) Bruno
__________________
|
|
August 18, 2014, 14:30 |
|
#33 |
New Member
Stefano Rolfo
Join Date: Aug 2014
Location: UK
Posts: 3
Rep Power: 12 |
Dear Bruno
thanks very much for your replay. I check the centre, radius and axis and all are ok (The axis is z and the radius should be between 0.029 and 0.05). I also try to use the filter merge block and after i applied your filter that posted at the top and still the result is the same of the input with no cut. I manage to get something similar to what i was looking for using a coordinate transformation from Cartesian to cylindrical and after using the plane cut on the new geometry. but, in any case, would be nice to have also this filter working. In attachment the small case as you have requested and if you manage to get something let me know. In the input there is only the mesh, but no variables. Just to be clear at the moment i'm using Paraview 4.0 and i don’t know if the version is the source of the problem. Thanks very much for your help Best wishes Stefano |
|
November 13, 2014, 08:51 |
|
#34 |
New Member
Jacopo De Amicis
Join Date: Mar 2012
Posts: 2
Rep Power: 0 |
Hello everybody,
have you managed to find a solution for this problem in version 4.0? I have the same problem as Stefano, changing that line makes the script work but it gives the parent geometry back. Cheers! |
|
December 2, 2014, 12:35 |
|
#35 |
Member
Lourenço SM
Join Date: Jul 2014
Location: Lisboa, Portugal
Posts: 41
Rep Power: 12 |
Is there a way to auto-update the time step function,
So that the programmable filter finds the new values in paraview "play mode"?? Thank you, Lourenço |
|
April 5, 2015, 13:20 |
|
#36 | |||
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Greetings to all!
I'll answer to all 3 posts here: ------------ @Stefano: Quote:
I tested with ParaView 4.1.0 with the following code and it worked just fine with the test case you provided: Code:
input = self.GetInputDataObject(0, 0) inp_copy = input.NewInstance() inp_copy.ShallowCopy(input) inp_copy.UnRegister(None) cutter = vtk.vtkCutter() transf = vtk.vtkTransform() transf.RotateX(90) cyl = vtk.vtkCylinder() cyl.SetCenter(0,0,0) cyl.SetRadius(0.04) cyl.SetTransform(transf) cutter.SetCutFunction(cyl) cutter.SetInputData(inp_copy) cutter.Update() self.GetOutputDataObject(0).ShallowCopy(cutter.GetOutputDataObject(0)) I've tested as well with ParaView 4.0.1 64-bit, which I downloaded as one of the pre-built packages from ParaView.org, and it worked as well. Do notice that the critical detail here is that the radius needs to be changed from "0.4" to "0.04": Code:
cyl.SetRadius(0.04) ---------- @Jacopo: Quote:
By the way, I hope you're using the "Programmable Filter", not the "Programmable Source". ---------- @Lourenço: Quote:
If not, you'll have to provide more details, because I can't figure out what exactly you're looking for. Best regards, Bruno
__________________
|
||||
April 25, 2016, 10:08 |
|
#37 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Dear Bruno,
Which command here is for defining the axis direction of the cylindrical slice before is it flattened? Thanks. Quote:
|
||
May 1, 2016, 20:14 |
|
#38 | |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,982
Blog Entries: 45
Rep Power: 128 |
Quote:
Code:
transf.RotateX(90)
__________________
|
||
July 21, 2019, 23:50 |
|
#39 | |
New Member
Join Date: Sep 2018
Posts: 3
Rep Power: 8 |
Hi waynezw0618,
I know it's been a long time ago. I recently have this problem about unwrapping an openfoam simulation in a cylinder annulus to a 2D plane. I have an error after running your code: AttributeError:'vtkCommonDataModelPython.vtkMultiB lockDataSet' object has no attribute 'GetPoint'. It seems it is related with multiblocks but I have no idea how to solve this issue. Could you please help me with that if you happen to know? by the way, in your code, why you use 12*z as the third coordinate? Thank you very much. Quote:
|
||
September 28, 2024, 12:42 |
|
#40 | |
New Member
Nikhil Chitnavis
Join Date: Sep 2019
Location: India
Posts: 19
Rep Power: 7 |
Hi haha,
Have you resolved the issue related to unwrapping the cylinder. Please can you share how to unwrap the cylinder in paraview. While unwrapping the cylinder only half of the cylinder is unwrapped. Quote:
|
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
activeBaffleVelocity boundary condition ? | om3ro | OpenFOAM Programming & Development | 10 | November 17, 2020 00:26 |
Modified pimpleFoam solver to MRFPimpleFoam solver | hiuluom | OpenFOAM Programming & Development | 12 | June 14, 2015 22:22 |
Strange high velocity in centrifugal pump simulation | huangxianbei | OpenFOAM Running, Solving & CFD | 26 | August 15, 2014 03:27 |
interFoam/kOmegaSST tank filling with printStackError/Mules | simpomann | OpenFOAM Running, Solving & CFD | 3 | February 17, 2014 18:06 |
Error during initialization of "rhoSimpleFoam" | kornickel | OpenFOAM Running, Solving & CFD | 8 | September 17, 2013 06:37 |