CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Meshing & Mesh Conversion

Monte Carlo Packing Problem

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   May 13, 2009, 21:00
Default Monte Carlo Packing Problem
  #1
Senior Member
 
chegdan's Avatar
 
Daniel P. Combest
Join Date: Mar 2009
Location: St. Louis, USA
Posts: 509
Rep Power: 17
chegdan will become famous soon enough
Hi fellow Foamers,

I'm attempting to write a Monte Carlo packing algorithm that can pack particles of any shape into a simple container (box, cylinder, sphere). I am using OF's mesh handling, since I think if will be easier to manipulate complex objects with OF rather than reinvent the wheel and make my own. I have a few questions:

1. How do I grab the coordinate locations of a particular patch and then copy new point locations back to the mesh?

2. How can I tell if one patch overlaps another one after I have moved and rotated a particle?

I have implemented quaternions and septernions to handle the rotation and translation, but I'm having issues on how to extract the points of the faces and then copying new points back. Currently my domain is basically two spheres with surface meshes on them. They are floating free, with no bounding box, as I want to draw the container after the packing is finished. I have tried to use some of the dynamicFvMesh types and none of them fit my needs. Right now I am using a static mesh without the dynamicFvMesh capabilities. Thoughts?

Dan
chegdan is offline   Reply With Quote

Old   May 14, 2009, 22:33
Default Trouble Grabbing Points
  #2
Senior Member
 
chegdan's Avatar
 
Daniel P. Combest
Join Date: Mar 2009
Location: St. Louis, USA
Posts: 509
Rep Power: 17
chegdan will become famous soon enough
When I try to grab the points using:
Code:
   pointField points0_
    (
        pointIOField
        (
            IOobject
            (
                "points",
                time().constant(),
                polyMesh::meshSubDir,
                mesh,
                IOobject::MUST_READ,
                IOobject::NO_WRITE,
                false
            )
        )
    );
I get the following error:
Code:
In file included from mCPFoam.C:57:
/usr/include/time.h: In function ‘int main(int, char**)’:
/usr/include/time.h:187: error: too few arguments to function ‘time_t time(time_t*)’
readPoints.H:8: error: at this point in file
I'm attempting to grab the points (similar to displacementLaplacianFvMotionSolver.C) and manipulate the points and write them to a local polyMesh folder at each time step. This is similar to how the displacementLaplacianFvMotionSolver works. I am attempting to do manipulate a field named pointMovement and then add them to the points field to move the mesh. Any ideas? I was able to move the objects by specifying a pointDisplacement and cellDisplacement and using the dynamicMotionSolverFvMesh dynamic mesh motion solver. However I need to be able to move them and check if they overlap. Help?
chegdan is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Incoherent problem table in hollow-fiber spinning Gianni FLUENT 0 April 5, 2008 10:33
Adiabatic and Rotating wall (Convection problem) ParodDav CFX 5 April 29, 2007 19:13
Problem in Tutorial problem of fluent Phanindra FLUENT 5 April 17, 2007 09:57
Info Radiation Monte Carlo Model Matteo CFX 1 December 22, 2006 09:01
Monte Carlo vs Discrete Transfer TobiasZ CFX 5 January 25, 2006 11:11


All times are GMT -4. The time now is 05:36.