[vtkusers] Creating a structured grid of 250x250 cells is causing MS runtime to throw an exception

Nathan__ reeves_nathan at hotmail.com
Thu Jul 15 03:51:51 EDT 2010


I am just trying to create a basic example to ensure that VTK can handle the
number of cells I need. At 250,000 cells, the MS run time dll is throwing an
exception due to bad memory allocation. Can anyone please help as to why as
I am sure this number should easily be handled.

Here is my example:


#define DIMENSION_X 500
#define DIMENSION_Y 500
#define DIMENSION_Z 1

int main()
{
    //create points of hexahedron
    vtkPoints *points1 = vtkPoints::New();
    for (int i=0;i<DIMENSION_X;i++)
	{
    	for (int j=0;j<DIMENSION_Y;j++)
		{
	    	for (int k=0;k<DIMENSION_Z;k++)
			{
				points1->InsertNextPoint(i,j,k);
			}
		}
	}    
    vtkHexahedron *theHex[DIMENSION_X*DIMENSION_Y*DIMENSION_Z];
	for(int i=0;i<DIMENSION_X*DIMENSION_Y*DIMENSION_Z;i++)
	{
		theHex[i] = vtkHexahedron::New();
   		theHex[i]->GetPointIds()->SetNumberOfIds(8);  //not needed if use
insertId

	    for (int j = 0; j <8; j++)
		{
			theHex[i]->GetPointIds()->SetId(j,j+(i*8));  //this maps internal id 0-7
to global point Id
//			theHex[i]->GetPointIds()->InsertId(j,j+(i*8));
		}
	}    
	vtkStructuredGrid *myStructuredGrid1 = vtkStructuredGrid::New();
	myStructuredGrid1->SetDimensions(DIMENSION_X,DIMENSION_Y,DIMENSION_Z);
	myStructuredGrid1->SetPoints(points1);

	//create a mapper for the hexahedron
	vtkDataSetMapper *theHexMapper1;
	theHexMapper1 = vtkDataSetMapper::New();
	theHexMapper1->SetInput(myStructuredGrid1);

		//create an actor
	vtkActor * hexActor1;//[NUMBER_OF_SHAPES];
	hexActor1 = vtkActor::New();
	hexActor1->SetMapper(theHexMapper1);
	
	// a renderer and render window
    vtkRenderer *ren1 = vtkRenderer::New();
    vtkRenderWindow *renWin = vtkRenderWindow::New();
    renWin->AddRenderer(ren1);
    
	ren1->AddActor(hexActor1);
	
	// an interactor
    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(renWin);
    ren1->SetBackground(1,1,1); // Background color white
    
    // render an image (lights and cameras are created automatically)
    renWin->Render();
    
    iren->Initialize();
    iren->Start();
    
    return 1;
}


Here is my stack trace:

 	KernelBase.dll!767eb727() 	
 	[Frames below may be incorrect and/or missing, no symbols loaded for
KernelBase.dll]	
 	KernelBase.dll!767eb727() 	
 	ntdll.dll!77750e7b() 	
>	msvcr80d.dll!_unlock(int locknum=8)  Line 376	C
 	msvcr80d.dll!_unlockexit()  Line 760 + 0x7 bytes	C
 	msvcr80d.dll!_CxxThrowException(void * pExceptionObject=0x3c6cbb50, const
_s__ThrowInfo * pThrowInfo=0x6c6d3340)  Line 161	C++
 	msvcr80d.dll!operator new(unsigned int size=128)  Line 64	C++
 	vtkUtilities.exe!vtkOStrStreamWrapper::vtkOStrStreamWrapper()  Line 48 +
0x44 bytes	C++
 	vtkUtilities.exe!vtkDataArrayTemplate<double>::Allocate(int sz=6, int
__formal=1000)  Line 140 + 0x21 bytes	C++
 	vtkUtilities.exe!vtkDataArrayTemplate<double>::SetNumberOfValues(int
number=6)  Line 849 + 0x18 bytes	C++
 	vtkUtilities.exe!vtkDataArrayTemplate<double>::SetNumberOfTuples(int
number=2)  Line 406	C++
 	vtkUtilities.exe!vtkPoints::SetNumberOfPoints(int number=2)  Line 187 +
0x19 bytes	C++
 	vtkUtilities.exe!vtkLine::vtkLine()  Line 33	C++
 	vtkUtilities.exe!vtkLine::New()  Line 26 + 0x73 bytes	C++
 	vtkUtilities.exe!vtkHexahedron::vtkHexahedron()  Line 44 + 0x5 bytes	C++
 	vtkUtilities.exe!vtkHexahedron::New()  Line 28 + 0x73 bytes	C++
 	vtkUtilities.exe!main()  Line 431 + 0x5 bytes	C++
 	vtkUtilities.exe!__tmainCRTStartup()  Line 597 + 0x19 bytes	C
 	vtkUtilities.exe!mainCRTStartup()  Line 414	C
 	kernel32.dll!77223677() 	
 	ntdll.dll!77749d42() 	
 	ntdll.dll!77749d15() 	

-- 
View this message in context: http://old.nabble.com/Creating-a-structured-grid-of-250x250-cells-is-causing-MS-runtime-to-throw-an-exception-tp29170212p29170212.html
Sent from the VTK - Users mailing list archive at Nabble.com.




More information about the vtkusers mailing list