CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (http://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   Monte Carlo Packing Problem (http://www.cfd-online.com/Forums/openfoam-meshing/64529-monte-carlo-packing-problem.html)

chegdan May 13, 2009 21:00

Monte Carlo Packing Problem
 
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 May 14, 2009 22:33

Trouble Grabbing Points
 
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?


All times are GMT -4. The time now is 09:29.