CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

AMI weight goes to 0 at every timestep

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 2, 2024, 17:35
Default AMI weight goes to 0 at every timestep
  #1
New Member
 
Join Date: Jan 2024
Location: Kazakhstan
Posts: 1
Rep Power: 0
arukan is on a distinguished road
Hello everyone,

I'm simulating a stacked propeller using cyclicAMI bc in OpenFoam 9.
I have successfully completed a simulation with a coarser mesh, however, I have problems with the simulation after refinement. I have noticed that the AMI weight goes to 0 at every timestep.
I used blockMesh for the domain and then applied shM to AMI and fans. To create AMI I used createBaffles utility.
I had this problem before and was able to overcome this by adjusting snappyHexMesh settings (however I am not exactly sure what helped), but not at every time step. The only thing I changed is increased the refinementSurfaces level for fan1 and fan2 from (3 4) to (4 5). Here is my sHM dict:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    object      snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

castellatedMesh true;
snap            true;
addLayers       true;

geometry
{
    AMI.stl
    {
        type triSurfaceMesh;
        name AMI;
    }
    fan1.stl
    {
        type triSurfaceMesh;
        name fan1;
    }
	fan2.stl
    {
        type triSurfaceMesh;
        name fan2;
    }
    refinementBox
    {
        type    searchableBox;
        min     (1.8 -0.5 -0.5);
        max     (3 0.5 0.5);
    }

};



castellatedMeshControls
{
    maxLocalCells 100000;
    maxGlobalCells 7000000;
    minRefinementCells 0;
    maxLoadUnbalance 0.10;
    nCellsBetweenLevels 3;

    features
    (
        {
            file "fan1.eMesh";
            level 4;
        }
		{
            file "fan2.eMesh";
            level 4;
        }
		{
            file "AMI.eMesh";
            level 4;
        }
    );


    refinementSurfaces
    {
        AMI
        {
            level (3 3);
	    cellZone rotating_zone;
	    faceZone rotating_zone;
	    cellZoneInside inside;
        }
		fan1
        {
            level (4 5);
        }
		fan2
        {
            level (4 5);
        }
    }

    resolveFeatureAngle 30;

    refinementRegions
    {
        AMI
        {
            mode    inside;
            level   2;
        }
		refinementBox
		{
			mode inside;
			level 1;
		}
    }


    locationInMesh (0.61 0 0);
    allowFreeStandingZoneFaces true;
}



snapControls
{

    nSmoothPatch 3;
    tolerance 4.0;
    nSolveIter 50;
    nRelaxIter 5;
	
        //nFeatureSnapIter 25;
        implicitFeatureSnap true;
        explicitFeatureSnap false;
        multiRegionFeatureSnap false;
}



// Settings for the layer addition.
addLayersControls
{
    relativeSizes true;

    layers
    {
        "(fan).*"
        {
            nSurfaceLayers 7;
        }
    }

    expansionRatio 1.0;
    finalLayerThickness 0.3;
    minThickness 0.1;
    nGrow 0;
    featureAngle 60;
    nRelaxIter 3;
    nSmoothSurfaceNormals 1;
    nSmoothNormals 3;
    nSmoothThickness 2;
    maxFaceThicknessRatio 0.5;
    maxThicknessToMedialRatio 0.3;
    minMedianAxisAngle 90;
    nBufferCellsNoExtrude 0;
    nLayerIter 20;
}

meshQualityControls
{
    maxNonOrtho 65;
    maxBoundarySkewness 20;
    maxInternalSkewness 4;
    maxConcave 80;
    minFlatness 0.5;
    minVol 1e-13;
    minTetQuality 1e-30;
    minArea -1;
    minTwist 0.02;
    minDeterminant 0.001;
    minFaceWeight 0.02;
    minVolRatio 0.01;
    minTriangleTwist -1;
    // Advanced

    //- Number of error distribution iterations
    nSmoothScale 4;
    //- Amount to scale back displacement at error points
    errorReduction 0.75;
}


// Advanced

// Merge tolerance. Is fraction of overall bounding box of initial mesh.
// Note: the write tolerance needs to be higher than this.
mergeTolerance 1e-6;


// ************************************************************************* //
I found this post :Cyclic AMI patch minimum weight goes to zero
and tried to follow Artur's advide. But I think it is not applicable to my case, since AMI goes to 0 at every time step. Increasing FeatureSnapIter gives skewed faces in the propeller so I disabled it. I also tried turning on implicitFeatureSnap as was suggested in the post, but it did not help.

checkMesh does not give any errors. The AMI patches look identical in paraview. I attached the clip of the rotating zone.

Any help would be greatly appreciated!
AMI1.jpg

AMI2.jpg

rotating_zone.jpg
arukan is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cyclic AMI patch minimum weight goes to zero muhammss OpenFOAM Running, Solving & CFD 16 October 7, 2022 05:26
How to increase an AMI timestep size reidwill OpenFOAM 1 November 8, 2021 01:35
Error running AMI propeller simulation luitzor OpenFOAM Running, Solving & CFD 0 April 19, 2021 14:48
mapField error rvl565 OpenFOAM Pre-Processing 1 September 6, 2018 17:13
mixerVesselAMI2D's mass is not balancing sharonyue OpenFOAM Running, Solving & CFD 6 June 10, 2013 10:34


All times are GMT -4. The time now is 13:57.