CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Query on SnappyHexMesh (https://www.cfd-online.com/Forums/openfoam-solving/120448-query-snappyhexmesh.html)

nandiganavishal July 7, 2013 11:59

Query on SnappyHexMesh
 
Dear Foamers,

I have mapped and meshed a user defined structure (generated as .stl file) inside my cylindrical geometry using SnappyHexMesh. I would like to know, if OpenFOAM describes the mapped geometry only as a boundary (or patch). Is it possible to define this structure as part of the internal domain. The reason I am asking this is because I would like to solve the following equation in the entire domain (both mapped geometry and the cylindrical domain)

fvm::laplacian(eps_r(r),Phi(r)) == rho (r)

where, eps_r is 80 when r != r_map (r is the mesh point location and r_map is the mesh point of the mapped structure)
eps_r = 2 when r == r_map

rho(r) = user defined input value depending on r

Hence, I would like to know if we can define the entire system (mapped structure + cylindrical geometry) as a single domain so as to solve the problem in a single domain.

Please let me know

Thanks

Regards,
Vishal

Artur July 9, 2013 11:19

I did something similar the other day to define an AMI (arbitrary mesh interface) using an .stl file of a cylinder I generated by my own script. Here are the steps I followed:

1. import the .stl in the snappyHexMeshDict as per usual:

Code:

    amiCylinder.stl
    {
        type        triSurfaceMesh;
        name        amiCylinder;
        regions
        {
            amiCylinder
            {
                name      amiCylinder;
            }
        }
    }

2. refine the edges as per usual as well:

Code:

    features
    (
        {
            file        "amiCylinder.eMesh";
            level      1;
        }
    );

3. in refinement surfaces define a cell zone inside the cylinder:

Code:

        amiCylinder
        {
            level      (4 4);
            cellZone    amiCylinder;
            faceZone    amiCylinder;
            cellZoneInside  inside;
        }

4. select the point in mesh to be OUTSIDE of the cylinder

Hopefully this will work for you too.

nandiganavishal July 15, 2013 21:11

Quote:

Originally Posted by Artur (Post 438717)
I did something similar the other day to define an AMI (arbitrary mesh interface) using an .stl file of a cylinder I generated by my own script. Here are the steps I followed:

1. import the .stl in the snappyHexMeshDict as per usual:

Code:

    amiCylinder.stl
    {
        type        triSurfaceMesh;
        name        amiCylinder;
        regions
        {
            amiCylinder
            {
                name      amiCylinder;
            }
        }
    }

2. refine the edges as per usual as well:

Code:

    features
    (
        {
            file        "amiCylinder.eMesh";
            level      1;
        }
    );

3. in refinement surfaces define a cell zone inside the cylinder:

Code:

        amiCylinder
        {
            level      (4 4);
            cellZone    amiCylinder;
            faceZone    amiCylinder;
            cellZoneInside  inside;
        }

4. select the point in mesh to be OUTSIDE of the cylinder

Hopefully this will work for you too.

Hi Arthur,

Thanks for your reply.

1. If I understand your message, the command cellzone and faceZone in the refinement surfaces when defined, would incorporate the .stl file (in your case cylinder) as part of the initial geometry defined in the blockMesh, and the combined geometry (initial geometry and .stl file) would be treated as single domain?

2. Currently, this is how my SnappyHexMesh file looks like

refinementSurfaces
{
ssdna_equilibrated_transformed_vmd_new // NOTE: SAME NAME AS THAT GIVEN IN type triSurfaceMesh
{
// Surface-wise min and max refinement level
level (4 5);
}
}

I would incorporate your suggestions and would get you posted.

Thanks

Regards,
Vishal


All times are GMT -4. The time now is 01:02.