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/)
-   -   hexRef8 mapping pointLevel (https://www.cfd-online.com/Forums/openfoam-solving/168722-hexref8-mapping-pointlevel.html)

ripudaman March 28, 2016 00:34

hexRef8 mapping pointLevel
 
Dear FOAMers,

I am attempting to create a dynamicMesh to perform a dynamicRefinement operation followed by a topoChanger operation. After a topoChanger operation the number of points in the mesh is updated, however the pointLevel stored in hexRef8 object (meshCutter) is not mapped as I get an error in the following piece of code from hexRef8::checkRefinementLevels
Code:

    if
    (
        cellLevel_.size() != mesh_.nCells()
    || pointLevel_.size() != mesh_.nPoints()
    )
    {
        FatalErrorIn("hexRef8::checkRefinementLevels(const label)")
            << "cellLevel size should be number of cells"
            << " and pointLevel size should be number of points."<< nl
            << "cellLevel:" << cellLevel_.size()
            << " mesh.nCells():" << mesh_.nCells() << nl
            << "pointLevel:" << pointLevel_.size()
            << " mesh.nPoints():" << mesh_.nPoints()
            << abort(FatalError);
    }

I see the the pointLevel size and the mesh.nPoints() value are not the same with the former being 1 less than nPoints.

Is there any way to map the pointLevel List? My understanding suggest that this does not happen automatically since automatic mapping after mesh.update of dynamic mesh objects is done only for GeometricFields.

Please correct me if my understanding is incorrect. I would appreciate any help.

Thank you.
Regards,
Ripu

P.S. - I have gone through some other forum posts that could be helpful in this regard but didn't get any clear understanding - http://www.cfd-online.com/Forums/ope...y-changes.html


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