CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions

[isoAdvector] IsoAdvector: A new interface advection scheme for interFoam type calculations

Register Blogs Community New Posts Updated Threads Search

Like Tree76Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 7, 2020, 09:47
Default
  #81
Member
 
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 20
roenby will become famous soon enough
Thanks :-)


In the new version, OpenFOAM-v2006, a major restructuring of the isoAdvector code was introduced. Now there is a reconstructionSchemes base class, which has a public member function called centre() returning a const ref to a volVectorField containing the "isoface centres". See here:

https://develop.openfoam.com/Develop...Schemes.H#L233


There is also a similar function called normal() returning the interface normal vector (with lenght equal to isoface area).
CorbinMG likes this.
roenby is offline   Reply With Quote

Old   September 24, 2020, 07:15
Default
  #82
Member
 
Dongxu Wang
Join Date: Sep 2018
Location: China
Posts: 33
Rep Power: 7
wdx_cfd is on a distinguished road
Hi Johan,

I use isoAdvector with the overset grid to simulate the motion of a floating object under regular waves. According to your suggestions, I set the tolerance of p_rgh smaller than the surfCellTol to avoid the problem of air bubbles:

Code:
    "alpha.water.*"
    {
        isoFaceTol      1e-6;
        surfCellTol     1e-6;
        nAlphaBounds    3;
        snapTol         1e-12;
        clip            true;

        nAlphaSubCycles 1;
        cAlpha          1; // Note: cAlpha is not used by isoAdvector but must
                           // be specified because interfacePropertes object
                           // reads it during construction.
    }

    "pcorr.*"
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-8;
        relTol          1e-4;
    }

    p_rgh
    {
        solver          PBiCGStab;
        preconditioner  DILU;
        tolerance       1e-8;
        relTol          1e-4;
    }

    p_rghFinal
    {
        $p_rgh;
        relTol          1e-4;
    }

PIMPLE
{
    momentumPredictor   no;
    nOuterCorrectors    13;
    nCorrectors         3;
    nNonOrthogonalCorrectors 0;

    ddtCorr                    yes;
    correctPhi                 no;

    moveMeshOuterCorrectors yes;

    residualControl  
	{   
		p_rgh
		{
			tolerance       0;
			relTol          1e-4;
		}
	}
    turbOnFinalIterOnly yes; // I conducted my simulation under the laminar condition

    oversetAdjustPhi    no;
}
However, in my case, when the object moves, air bubbles still appear (see in the attachment). I also found that setting all the relTol of P-related variables as 0 alleviates the air bubble problem, although it still exists.

Furthermore, some warning occurs as the simulation proceeds:

Code:
--> FOAM Warning : 
    From function void Foam::isoCutFace::cutPoints(const pointField&, const scalarField&, Foam::scalar, Foam::DynamicList<Foam::Vector<double> >&)
    in file fvMatrices/solvers/isoAdvection/isoCutFace/isoCutFace.C at line 667
    cutPoints = 4((20.01 0 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.01 0.02 -0.00272300262577) (20.01 0 -0.00272300262577)) for pts = 4((20.01 0 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.01 0.02 -0.00272300262577) (20.01 0 -0.00272300262577)), f - f0 = 4(2.47963775186e-16 2.47963775186e-16 -2.5234546545e-15 -2.5234546545e-15) and f0 = 0
--> FOAM Warning : 
    From function void Foam::isoCutFace::cutPoints(const pointField&, const scalarField&, Foam::scalar, Foam::DynamicList<Foam::Vector<double> >&)
    in file fvMatrices/solvers/isoAdvection/isoCutFace/isoCutFace.C at line 667
    cutPoints = 4((20.02 0 -0.00672300262577) (20.02 0.02 -0.00672300262577) (20.02 0.02 -0.00272300262577) (20.02 0 -0.00272300262577)) for pts = 4((20.02 0 -0.00672300262577) (20.02 0.02 -0.00672300262577) (20.02 0.02 -0.00272300262577) (20.02 0 -0.00272300262577)), f - f0 = 4(6.39968315195e-17 6.39968315195e-17 -3.53519763715e-16 -3.53519763715e-16) and f0 = 0
--> FOAM Warning : 
    From function void Foam::isoCutFace::cutPoints(const pointField&, const scalarField&, Foam::scalar, Foam::DynamicList<Foam::Vector<double> >&)
    in file fvMatrices/solvers/isoAdvection/isoCutFace/isoCutFace.C at line 667
    cutPoints = 4((20 0 -0.00672300262577) (20 0.02 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.01 0 -0.00672300262577)) for pts = 4((20 0 -0.00672300262577) (20 0.02 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.01 0 -0.00672300262577)), f - f0 = 4(-3.48677896164e-15 -3.48677896164e-15 2.47963775186e-16 2.47963775186e-16) and f0 = 0
--> FOAM Warning : 
    From function void Foam::isoCutFace::cutPoints(const pointField&, const scalarField&, Foam::scalar, Foam::DynamicList<Foam::Vector<double> >&)
    in file fvMatrices/solvers/isoAdvection/isoCutFace/isoCutFace.C at line 667
    cutPoints = 4((20.01 0 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.02 0.02 -0.00672300262577) (20.02 0 -0.00672300262577)) for pts = 4((20.01 0 -0.00672300262577) (20.01 0.02 -0.00672300262577) (20.02 0.02 -0.00672300262577) (20.02 0 -0.00672300262577)), f - f0 = 4(-7.35446095197e-16 -7.35446095197e-16 6.39968315195e-17 6.39968315195e-17) and f0 = 0
Is the warning due to the air bubble problem? I found the simulation is likely to crash once the warning appears.

The simulation was performed using OFv1906.

It would be nice if you could give me some advice.

Thank you very much.

WDX
Attached Images
File Type: jpg 4.2s.jpg (131.4 KB, 85 views)
File Type: jpg 6.5s.jpg (131.2 KB, 76 views)
wdx_cfd is offline   Reply With Quote

Old   September 24, 2020, 10:25
Default
  #83
Member
 
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 20
roenby will become famous soon enough
Hi WDX


Cool that you are trying out isoAdvector with overset grid. As of now, this is not officially supported, I'd be very surprised, if it worked without code modifications, but then again, there is in principle nothing to hinder isoAdvector working with overset grids.


The warnings mean that some cell faces are cut by more than one "isoface", which indicates that there are cells with more than one isoface inside it. In your case this is probably a biproduct of the problem you see, so don't think too much about these warnings.


The real problem is the continuity errors caused by the pressure solution (and probably worsened by interpolations between the meshes) causing isoAdvector to find fluid interfaces in cells that should contain only water.


Could you do me a favor and try to rerun with surfCellTol 1e-3 and let me know if this prevents the bubbles? This is not a solution, just a diagnostic attempt.


Kind regards,
Johan
roenby is offline   Reply With Quote

Old   September 24, 2020, 22:46
Post
  #84
Member
 
Dongxu Wang
Join Date: Sep 2018
Location: China
Posts: 33
Rep Power: 7
wdx_cfd is on a distinguished road
Quote:
Originally Posted by roenby View Post
Hi WDX


Cool that you are trying out isoAdvector with overset grid. As of now, this is not officially supported, I'd be very surprised, if it worked without code modifications, but then again, there is in principle nothing to hinder isoAdvector working with overset grids.


The warnings mean that some cell faces are cut by more than one "isoface", which indicates that there are cells with more than one isoface inside it. In your case this is probably a biproduct of the problem you see, so don't think too much about these warnings.


The real problem is the continuity errors caused by the pressure solution (and probably worsened by interpolations between the meshes) causing isoAdvector to find fluid interfaces in cells that should contain only water.


Could you do me a favor and try to rerun with surfCellTol 1e-3 and let me know if this prevents the bubbles? This is not a solution, just a diagnostic attempt.


Kind regards,
Johan
Thank you for your quick reply!

From my experience, it seems that isoAdvector can work together with the overset grid without further modifications. However, there may exist some tiny problems unfounded (such as this air bubble problem, and the pressure oscillation problem as mentioned below):

I performed an experiment that investigates the FSI of a floating box and a dambreak flow recently. I have already used my program to simulate the experiment. The result is uploaded in the attachment (the manuscript is under review, so sorry for cannot upload the paper, and the experiment data will be released once the paper is accepted). As you can see, the result is relatively good in terms of the surface elevation and structure motion. However, the pressure (impact load) curve oscillates. I am not sure whether this is induced by the air bubble problem or not. The same problem is also observed in regular wave simulations.

All in all, this problem may be not critical if the focus is not on the pressure or air bubbles. But I am trying to fix it . I will try it with 1e-3 and upload the result in the future. However, this may be time consuming because my simulation is performed using PIMPLE. To save time, I think I should run my case with PISO first.

Regards
WDX
Attached Images
File Type: jpg fig1.jpg (82.6 KB, 49 views)
File Type: jpg fig2.jpg (84.0 KB, 39 views)
wdx_cfd is offline   Reply With Quote

Old   September 25, 2020, 18:29
Default
  #85
Member
 
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 20
roenby will become famous soon enough
Interesting work, WDX. I'd be very interested in seeing that paper once it is available. It looks like the two figures are from two different experiments. Right? Are the numerical curves with overset and isoAdvector in both figs? The pressure oscillations are especially pronounced in the beginning of fig2 but do not seem to harm the 6DoF motion significantly. These might be added mass instability oscillations. Did you try the same setup with MULES and see if this gives similar pressure oscillations?
roenby is offline   Reply With Quote

Old   September 28, 2020, 04:15
Default
  #86
Member
 
Dongxu Wang
Join Date: Sep 2018
Location: China
Posts: 33
Rep Power: 7
wdx_cfd is on a distinguished road
Quote:
Originally Posted by roenby View Post
Interesting work, WDX. I'd be very interested in seeing that paper once it is available. It looks like the two figures are from two different experiments. Right? Are the numerical curves with overset and isoAdvector in both figs? The pressure oscillations are especially pronounced in the beginning of fig2 but do not seem to harm the 6DoF motion significantly. These might be added mass instability oscillations. Did you try the same setup with MULES and see if this gives similar pressure oscillations?
Hi Johan,

Thank you for your reply.

I conducted some simulations as per your suggestion, and I have an interesting finding:

When a smaller tolerance is used, the occurrence of the air bubble problem may be due to the discontinues field on the interface of different subdomians (processors). The problem disappears when the program is ran in the serial mode.

Details on this issue is updated as a attachment.

Furthermore, the pressure oscillation problem is likely due to the added mass effect, as your said. Actually, I embedded an algorithm in 6DOF model with the aim of ensuring strong coupling. That is also the reason why my cases are ran with PIMPLE. However, I didn't use under-relaxation in the previous simulation. I believe that the pressure oscillation problem may be alleviated by introducing the under-relaxation field to p_rgh field. I will try it.

Please check the attachment. Due to the limit of attachment filesize (only 195kb...), some figures were eliminated, and the figure may be not clear enough. If you want to see the figure, please let me know, and I will send you an e-mail.

Again, if you could give me some suggestion, I will be very grateful.

Regards
WDX
Attached Files
File Type: pdf issueDescription.pdf (192.7 KB, 45 views)
wdx_cfd is offline   Reply With Quote

Old   February 1, 2021, 09:54
Default compiling isoAdvector with openfoam-dev
  #87
New Member
 
TN
Join Date: Dec 2020
Posts: 4
Rep Power: 5
enim is on a distinguished road
Hello, i'am working on the process selective laser melting, i find a repository from github which contain an openfoam solver for selective laser melting :

https://github.com/zekunwang96/Selective-laser-melting
I followed the instructions to compile this solver but still without success
i'am using OpenFOAM-dev , this is the error that appears :



nada@nada-VirtualBox:~/Selective-laser-melting/isoAdvector-mastert$ ls
Allwclean bin foam-extend-4.1 OpenFOAM-3.0.1 OpenFOAM-dev SLM5v
Allwmake foam-extend OpenFOAM OpenFOAM-8 README.md
nada@nada-VirtualBox:~/Selective-laser-melting/isoAdvector-mastert$ ./Allwmake
Installing isoAdvector...
Copying non-existing files from OpenFOAM to OpenFOAM-dev...

Changing code in ../OpenFOAM-dev/src to old API.

sed: no input files
sed: no input files

sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
/home/nada/Selective-laser-melting/isoAdvector-mastert

The solver interFlow was already build from interFoam.C.
To rebuild it from scratch remove the file OpenFOAM-dev/applications/solvers/interFlow/dontRebuild and recompile.
This will overwrite all your changes to OpenFOAM-dev/applications/solvers/interFlow

/home/nada/Selective-laser-melting/isoAdvector-mastert
Compiling src/OpenFOAM-dev...
+ wmake libso
wmake libso .
g++ -std=c++14 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM-dev/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM-dev/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM-dev/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -c isoAdvection/isoAdvection.C -o Make/linux64GccDPInt32Opt/isoAdvection/isoAdvection.o
isoAdvection/isoAdvection.C: In constructor ‘Foam::isoAdvection::isoAdvection(Foam::volScalarF ield&, const surfaceScalarField&, const volVectorField&)’:
isoAdvection/isoAdvection.C:58:45: error: binding reference of type ‘Foam::scalarField&’ {aka ‘Foam::Field<double>&’} to ‘const Foam::Field<double>’ discards qualifiers
58 | alpha1In_(alpha1.oldTime().internalField()), // Need to reorganise
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
isoAdvection/isoAdvection.C: In member function ‘void Foam::isoAdvection::timeIntegratedFlux()’:
isoAdvection/isoAdvection.C:152:44: error: binding reference of type ‘Foam::scalarField&’ {aka ‘Foam::Field<double>&’} to ‘const Foam::Field<double>’ discards qualifiers
152 | scalarField& dVfIn = dVf_.internalField();
| ~~~~~~~~~~~~~~~~~~^~
isoAdvection/isoAdvection.C:355:31: error: ‘GeometricBoundaryField’ in ‘Foam::surfaceScalarField’ {aka ‘class Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>’} does not name a type
355 | const surfaceScalarField::GeometricBoundaryField& phib = phi_.boundaryField();
| ^~~~~~~~~~~~~~~~~~~~~~
isoAdvection/isoAdvection.C:356:31: error: ‘GeometricBoundaryField’ in ‘Foam::surfaceScalarField’ {aka ‘class Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>’} does not name a type
356 | const surfaceScalarField::GeometricBoundaryField& magSfb = mesh_.magSf().boundaryField();
| ^~~~~~~~~~~~~~~~~~~~~~
isoAdvection/isoAdvection.C:357:25: error: ‘GeometricBoundaryField’ is not a member of ‘Foam::surfaceScalarField’ {aka ‘Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>’}
357 | surfaceScalarField::GeometricBoundaryField& dVfb = dVf_.boundaryField();
| ^~~~~~~~~~~~~~~~~~~~~~
isoAdvection/isoAdvection.C:357:49: error: ‘dVfb’ was not declared in this scope; did you mean ‘dVf_’?
357 | surfaceScalarField::GeometricBoundaryField& dVfb = dVf_.boundaryField();
| ^~~~
| dVf_
isoAdvection/isoAdvection.C:379:33: error: ‘phib’ was not declared in this scope; did you mean ‘phi_’?
379 | const scalar phiP = phib[patchi][patchFacei];
| ^~~~
| phi_
isoAdvection/isoAdvection.C:383:38: error: ‘magSfb’ was not declared in this scope; did you mean ‘magSf’?
383 | const scalar magSf = magSfb[patchi][patchFacei];
| ^~~~~~
| magSf
isoAdvection/isoAdvection.C: In member function ‘void Foam::isoAdvection::syncProcPatches(Foam::surfaceS calarField&, const surfaceScalarField&)’:
isoAdvection/isoAdvection.C:1127:39: error: ‘nonBlocking’ is not a member of ‘Foam::Pstream’
1127 | PstreamBuffers pBufs(Pstream::nonBlocking);
| ^~~~~~~~~~~
isoAdvection/isoAdvection.C:1191:64: error: binding reference of type ‘Foam::scalarField&’ {aka ‘Foam::Field<double>&’} to ‘const Foam::Field<double>’ discards qualifiers
1191 | scalarField& localFlux = dVf.boundaryField()[patchi];
| ^
In file included from isoAdvection/isoAdvection.H:389,
from isoAdvection/isoAdvection.C:24:
isoAdvection/isoAdvectionTemplates.C: In instantiation of ‘void Foam::isoAdvection::faceValue(Foam::GeometricField <Type, Foam::fvsPatchField, Foam::surfaceMesh>&, Foam::label, const Type&) const [with Type = double; Foam::label = int]’:
isoAdvection/isoAdvection.C:902:70: required from here
isoAdvection/isoAdvectionTemplates.C:76:34: error: assignment of read-only location ‘(&(& f)->Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::internalField())->Foam:imensionedField<double, Foam::surfaceMesh>::<anonymous>.Foam::Field<double >::<anonymous>.Foam::List<double>::<anonymous>.Foa m::UList<double>:perator[](((Foam::label)facei))’
76 | f.internalField()[facei] = value;
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
isoAdvection/isoAdvectionTemplates.C:101:47: error: assignment of read-only location ‘(&(&(& f)->Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::boundaryField())->Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::Boundary::<anonymous>.Foam::Fi eldField<Foam::fvsPatchField, double>::<anonymous>.Foam::PtrList<Foam::fvsPatchF ield<double> >::<anonymous>.Foam::UPtrList<Foam::fvsPatchField< double> >:perator[](((Foam::label)patchi)))->Foam::fvsPatchField<double>::<anonymous>.Foam::Fi eld<double>::<anonymous>.Foam::List<double>::<anon ymous>.Foam::UList<double>:perator[](((Foam::label)patchFacei))’
101 | f.boundaryField()[patchi][patchFacei] = value;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
make: *** [/home/nada/OpenFOAM-dev/wmake/rules/General/transform:26: Make/linux64GccDPInt32Opt/isoAdvection/isoAdvection.o] Error 1
+ wmake libso finiteVolume/interpolationSchemes
wmake libso finiteVolume/interpolationSchemes
Compiling applications/OpenFOAM-dev...
+ wmake all solvers/interFlow
wmake solvers/interFlow
g++ -std=c++14 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -Wno-attributes -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-dev/src/lnInclude -I/home/nada/OpenFOAM-dev/src/transportModels/lnInclude -I/home/nada/OpenFOAM-dev/src/twoPhaseModels/twoPhaseMixture/lnInclude -I/home/nada/OpenFOAM-dev/src/twoPhaseModels/interfaceProperties/lnInclude -I/home/nada/OpenFOAM-dev/src/twoPhaseModels/incompressibleTwoPhaseMixture/lnInclude -I/home/nada/OpenFOAM-dev/src/twoPhaseModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude -I/home/nada/OpenFOAM-dev/src/MomentumTransportModels/momentumTransportModels/lnInclude -I/home/nada/OpenFOAM-dev/src/MomentumTransportModels/incompressible/lnInclude -I/home/nada/OpenFOAM-dev/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM-dev/src/dynamicFvMesh/lnInclude -I/home/nada/OpenFOAM-dev/src/meshTools/lnInclude -I/home/nada/OpenFOAM-dev/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM-dev/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM-dev/src/OSspecific/POSIX/lnInclude -fPIC -c interFlow.C -o Make/linux64GccDPInt32Opt/interFlow.o
In file included from ./createFields.H:126,
from /home/nada/OpenFOAM-dev/src/OpenFOAM/lnInclude/postProcess.H:105,
from interFlow.C:52:
./createIsoAdvection.H: In function ‘int main(int, char**)’:
./createIsoAdvection.H:6:8: warning: unused variable ‘snapAlphaTol’ [-Wunused-variable]
6 | scalar snapAlphaTol(isoAdvectorDict.lookupOrDefault<scala r>("snapTol", 1e-12));
| ^~~~~~~~~~~~
./createIsoAdvection.H:7:6: warning: unused variable ‘clipAlpha’ [-Wunused-variable]
7 | bool clipAlpha(isoAdvectorDict.lookupOrDefault<bool>("c lip", true));
| ^~~~~~~~~
./createIsoAdvection.H:76:6: warning: unused variable ‘prescribedU’ [-Wunused-variable]
76 | bool prescribedU(isoAdvectorDict.lookupOrDefault<bool>( "prescribedU", false));
| ^~~~~~~~~~~
./createIsoAdvection.H:77:14: warning: unused variable ‘period’ [-Wunused-variable]
77 | const scalar period = isoAdvectorDict.lookupOrDefault<scalar>("period", 0.0);
| ^~~~~~
./createIsoAdvection.H:78:8: warning: unused variable ‘reverseTime’ [-Wunused-variable]
78 | scalar reverseTime = isoAdvectorDict.lookupOrDefault<scalar>("reverseTi me", 0.0);
| ^~~~~~~~~~~
./createIsoAdvection.H:87:8: warning: unused variable ‘advectionTime’ [-Wunused-variable]
87 | scalar advectionTime = 0;
| ^~~~~~~~~~~~~
./createIsoAdvection.H:90:14: warning: unused variable ‘V0’ [-Wunused-variable]
90 | const scalar V0(gSum(mesh.V().field()*alpha1.internalField()) + SMALL);
| ^~
In file included from alphaEqnSubCycle.H:30,
from advectInterface.H:7,
from interFlow.C:137:
alphaEqn.H:48:37: error: ‘class Foam::immiscibleIncompressibleTwoPhaseMixture’ has no member named ‘cAlpha’
48 | surfaceScalarField phic(mixture.cAlpha()*mag(phi/mesh.magSf()));
| ^~~~~~
alphaEqn.H:51:9: error: ‘icAlpha’ was not declared in this scope; did you mean ‘isalpha’?
51 | if (icAlpha > 0)
| ^~~~~~~
| isalpha
alphaEqn.H:54:26: error: ‘class Foam::immiscibleIncompressibleTwoPhaseMixture’ has no member named ‘cAlpha’
54 | phic += (mixture.cAlpha()*icAlpha)*fvc::interpolate(mag(U) );
| ^~~~~~
alphaEqn.H:106:9: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
106 | alphaPhi = talphaPhiUD();
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:108:35: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
108 | if (alphaApplyPrevCorr && talphaPhiCorr0.valid())
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:117:9: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
117 | talphaPhiCorr0 = talphaPhiUD;
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:129:9: error: ‘alphaPhiUn’ was not declared in this scope; did you mean ‘alphaPhi10’?
129 | alphaPhiUn =
| ^~~~~~~~~~
| alphaPhi10
alphaEqn.H:149:54: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
149 | cnCoeff*alphaPhiUn + (1.0 - cnCoeff)*alphaPhi.oldTime();
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:154:64: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
154 | tmp<surfaceScalarField> talphaPhiCorr(alphaPhiUn - alphaPhi);
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:172:13: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
172 | alphaPhi = alphaPhiUn;
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:184:9: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
184 | talphaPhiCorr0 = alphaPhi - talphaPhiCorr0;
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:184:26: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
184 | talphaPhiCorr0 = alphaPhi - talphaPhiCorr0;
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:193:18: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
193 | rhoPhi = alphaPhi*(rho1 - rho2) + phiCN*rho2;
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:200:13: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
200 | alphaPhi = (alphaPhi - (1.0 - cnCoeff)*alphaPhi.oldTime())/cnCoeff;
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:204:18: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
204 | rhoPhi = alphaPhi*(rho1 - rho2) + phi*rho2;
| ^~~~~~~~
| alphaPhi10
In file included from alphaEqnSubCycle.H:38,
from advectInterface.H:7,
from interFlow.C:137:
alphaEqn.H:48:37: error: ‘class Foam::immiscibleIncompressibleTwoPhaseMixture’ has no member named ‘cAlpha’
48 | surfaceScalarField phic(mixture.cAlpha()*mag(phi/mesh.magSf()));
| ^~~~~~
alphaEqn.H:51:9: error: ‘icAlpha’ was not declared in this scope; did you mean ‘isalpha’?
51 | if (icAlpha > 0)
| ^~~~~~~
| isalpha
alphaEqn.H:54:26: error: ‘class Foam::immiscibleIncompressibleTwoPhaseMixture’ has no member named ‘cAlpha’
54 | phic += (mixture.cAlpha()*icAlpha)*fvc::interpolate(mag(U) );
| ^~~~~~
alphaEqn.H:106:9: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
106 | alphaPhi = talphaPhiUD();
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:108:35: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
108 | if (alphaApplyPrevCorr && talphaPhiCorr0.valid())
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:117:9: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
117 | talphaPhiCorr0 = talphaPhiUD;
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:129:9: error: ‘alphaPhiUn’ was not declared in this scope; did you mean ‘alphaPhi10’?
129 | alphaPhiUn =
| ^~~~~~~~~~
| alphaPhi10
alphaEqn.H:149:54: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
149 | cnCoeff*alphaPhiUn + (1.0 - cnCoeff)*alphaPhi.oldTime();
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:154:64: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
154 | tmp<surfaceScalarField> talphaPhiCorr(alphaPhiUn - alphaPhi);
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:172:13: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
172 | alphaPhi = alphaPhiUn;
| ^~~~~~~~
| alphaPhi10
alphaEqn.H:184:9: error: ‘talphaPhiCorr0’ was not declared in this scope; did you mean ‘talphaPhi1Corr0’?
184 | talphaPhiCorr0 = alphaPhi - talphaPhiCorr0;
| ^~~~~~~~~~~~~~
| talphaPhi1Corr0
alphaEqn.H:184:26: error: ‘alphaPhi’ was not declared in this scope; did you mean ‘alphaPhi10’?
184 | talphaPhiCorr0 = alphaPhi - talphaPhiCorr0;
| ^~~~~~~~
| alphaPhi10

thank you
enim is offline   Reply With Quote

Old   February 1, 2021, 10:15
Default
  #88
Member
 
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 20
roenby will become famous soon enough
Hi enim


I don't have anything to do with the github repo you mention - but I can mention that due to code reorganisation in OpenFOAM-dev, the github.com/isoAdvector version does not currently (1st February 2021) compile with OpenFOAM-dev without modifications by the user (Please see the isoAdvector README for info about currently supported OpenFOAM versions). Hence, unless the laser melting repo you refer to uses an updated isoAdvector with dev version support, don't expect it to work with dev (from the repo README it appears that it was developed for the old OpenFOAM-3.0.1).



I will eventually make github.com/isoAdvector work with the OpenFOAM-dev but my priority is maintenance and development for the openfoam.com version over at develop.openfoam.com.



Kind regards,
Johan Roenby
al.csc likes this.
roenby is offline   Reply With Quote

Old   February 8, 2021, 07:46
Default compile isoAdvector error
  #89
New Member
 
TN
Join Date: Dec 2020
Posts: 4
Rep Power: 5
enim is on a distinguished road
Hello everyone,
I want to compile isoadvector solver but without success how to fix this error ?
i have installed openfoam-3.0.1 version in my ubuntu because the solver i want to compile run with this version(openfoam-3.0.1)

nada@DESKTOP-C096SK6:~/Selective-laser-melting/isoAdvector-mastert$ ./Allwmake
Installing isoAdvector...
Copying non-existing files from OpenFOAM to OpenFOAM-3.0.1...

Changing code in ../OpenFOAM-3.0.1/src to old API.

sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
sed: no input files
/home/nada/Selective-laser-melting/isoAdvector-mastert

The solver interFlow was already build from interFoam.C.
To rebuild it from scratch remove the file OpenFOAM-3.0.1/applications/solvers/interFlow/dontRebuild and recompile.
This will overwrite all your changes to OpenFOAM-3.0.1/applications/solvers/interFlow

/home/nada/Selective-laser-melting/isoAdvector-mastert
Compiling src/OpenFOAM-3.0.1...
+ wmake libso
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file isoAdvection/isoAdvection.C
Making dependency list for source file isoCutFace/isoCutFace.C
Making dependency list for source file isoCutCell/isoCutCell.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c isoCutCell/isoCutCell.C -o Make/linux64GccDPInt32Opt/isoCutCell/isoCutCell.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c isoCutFace/isoCutFace.C -o Make/linux64GccDPInt32Opt/isoCutFace/isoCutFace.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c isoAdvection/isoAdvection.C -o Make/linux64GccDPInt32Opt/isoAdvection/isoAdvection.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -shared -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/isoCutCell/isoCutCell.o Make/linux64GccDPInt32Opt/isoCutFace/isoCutFace.o Make/linux64GccDPInt32Opt/isoAdvection/isoAdvection.o -L/home/nada/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib \
-lfiniteVolume -lmeshTools -o /home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib/libisoAdvection.so
'/home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib/libisoAdvection.so' is up to date.
+ wmake libso finiteVolume/interpolationSchemes
wmakeLnInclude: linking include files to ./lnInclude
Making dependency list for source file vofCompression/vofCompression.C
Making dependency list for source file mHRIC/mHRIC.C
Making dependency list for source file HRIC/HRIC.C
Making dependency list for source file CICSAM/CICSAM.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c CICSAM/CICSAM.C -o Make/linux64GccDPInt32Opt/CICSAM/CICSAM.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c HRIC/HRIC.C -o Make/linux64GccDPInt32Opt/HRIC/HRIC.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c mHRIC/mHRIC.C -o Make/linux64GccDPInt32Opt/mHRIC/mHRIC.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c vofCompression/vofCompression.C -o Make/linux64GccDPInt32Opt/vofCompression/vofCompression.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -shared -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/CICSAM/CICSAM.o Make/linux64GccDPInt32Opt/HRIC/HRIC.o Make/linux64GccDPInt32Opt/mHRIC/mHRIC.o Make/linux64GccDPInt32Opt/vofCompression/vofCompression.o -L/home/nada/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib \
-o /home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib/libVOFInterpolationSchemes.so
'/home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib/libVOFInterpolationSchemes.so' is up to date.
Compiling applications/OpenFOAM-3.0.1...
+ wmake all solvers/interFlow
Making dependency list for source file interFlow.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/transportModels/twoPhaseMixture/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/transportModels -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/transportModels/incompressible/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/transportModels/interfaceProperties/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/TurbulenceModels/turbulenceModels/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/TurbulenceModels/incompressible/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/transportModels/immiscibleIncompressibleTwoPhaseMixture/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/fvOptions/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/dynamicMesh/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/dynamicFvMesh/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/isoAdvection -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/isoCutCell -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/isoCutFace -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c interFlow.C -o Make/linux64GccDPInt32Opt/interFlow.o
cc1plus: fatal error: /home/nada/OpenFOAM/OpenFOAM-3.0.1/src/isoAdvection/stdc-predef.h: Permission denied
compilation terminated.
/home/nada/OpenFOAM/OpenFOAM-3.0.1/wmake/rules/General/transform:8: recipe for target 'Make/linux64GccDPInt32Opt/interFlow.o' failed
make: *** [Make/linux64GccDPInt32Opt/interFlow.o] Error 1
+ wmake all test
make[1]: Entering directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/test/isoCutTester'
Making dependency list for source file isoCutTester.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c isoCutTester.C -o Make/linux64GccDPInt32Opt/isoCutTester.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/isoCutTester.o -L/home/nada/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib \
-L/home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib -lfiniteVolume -lmeshTools -lsampling -lisoAdvection -lOpenFOAM -ldl \
-lm -o /home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/bin/isoCutTester
make[1]: Leaving directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/test/isoCutTester'
+ wmake all utilities/preProcessing
make[1]: Entering directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/utilities/preProcessing/isoSurf'
Making dependency list for source file isoSurf.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c isoSurf.C -o Make/linux64GccDPInt32Opt/isoSurf.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/isoSurf.o -L/home/nada/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib \
-L/home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib -lfiniteVolume -lmeshTools -lsampling -lisoAdvection -lOpenFOAM -ldl \
-lm -o /home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/bin/isoSurf
make[1]: Leaving directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/utilities/preProcessing/isoSurf'
+ wmake all utilities/postProcessing
make[1]: Entering directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/utilities/postProcessing/uniFlowErrors'
Making dependency list for source file uniFlowErrors.C
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -c uniFlowErrors.C -o Make/linux64GccDPInt32Opt/uniFlowErrors.o
g++-5 -m64 -Dlinux64 -DWM_ARCH_OPTION=64 -DWM_DP -DWM_LABEL_SIZE=32 -Wall -Wextra -Wold-style-cast -Wnon-virtual-dtor -Wno-unused-parameter -Wno-invalid-offsetof -O3 -DNoRepository -ftemplate-depth-100 -I/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/src/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/finiteVolume/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/meshTools/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/sampling/lnInclude -IlnInclude -I. -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude -I/home/nada/OpenFOAM/OpenFOAM-3.0.1/src/OSspecific/POSIX/lnInclude -fPIC -Xlinker --add-needed -Xlinker --no-as-needed Make/linux64GccDPInt32Opt/uniFlowErrors.o -L/home/nada/OpenFOAM/OpenFOAM-3.0.1/platforms/linux64GccDPInt32Opt/lib \
-L/home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/lib -lfiniteVolume -lmeshTools -lsampling -lisoAdvection -lOpenFOAM -ldl \
-lm -o /home/nada/OpenFOAM/nada-3.0.1/platforms/linux64GccDPInt32Opt/bin/uniFlowErrors
make[1]: Leaving directory '/home/nada/Selective-laser-melting/isoAdvector-mastert/OpenFOAM-3.0.1/applications/utilities/postProcessing/uniFlowErrors'
enim is offline   Reply With Quote

Old   November 17, 2021, 07:47
Default interIsoFoam - issues with large contact angles?
  #90
New Member
 
Alexander Meier
Join Date: Feb 2017
Posts: 15
Rep Power: 9
flowgeek is on a distinguished road
hi all,

i'm experimenting with interIsoFoam on a similar test case to the "static bubble case" used for the validation here:
https://www.sciencedirect.com/scienc...45793020302929

and i get some strange results...

main differences to the validation case are:
- it's 3d --> i'm trying to simulate a water droplet between two glass plates
- i have large contact angles of 130°
- i have very flat cells (xy dimension is 5x larger than z)

as a result i would also expect a round droplet.
Using interFoam i get a round droplet. With interIsoFoam i get a droplet which aligns to the rectangular grid (which is the opposite from the findings in the validation test case) --> see attached image: top interFoam, bottom interIsoFoam

i've tried
- a run with 90° contact angle --> this works and gives a round droplet
- a run with 50° contact angle --> this works as well
- changing resolutions across the gap --> more cells make it worse.
- going from flat to cubic cells --> works (but as i understand the idea of the plicRDF would be to work on more irregular grids and needing to increase the xy-resolution will lead to very long simulation times...)

so my guess is that there is a problem with dealing with "Hyperbolic paraboloid" surfaces combined with a certain aspect ratio of the cells.

maybe this can be improved with better settings? (i'm using the fvSchemes/fvSolution of the "damBreakWithObstacle" case.
or ist this a known limitation of interIsoFoam?
(Or i've done some very stupid mistake...)

i've attached the test case, for those who are interested...
what you will notice:
- the grid consists of rather flat-cells (as the case i finally want to calculate consists of 2 microscopy slides (2cm x 5cm which are only separated by 0.2mm.)
- i have very few cells in the gap as the initial intention was to use dynamic mesh refinement - however increasing the number of cells across the gap worsens the result... (i guess because it is then able to better reconstruct the shape of the interface across the gap which is more curved.)


any hints on how to improve the results would be great!

cheers
alex
flowgeek is offline   Reply With Quote

Old   November 17, 2021, 08:06
Default
  #91
New Member
 
Alexander Meier
Join Date: Feb 2017
Posts: 15
Rep Power: 9
flowgeek is on a distinguished road
Quote:
Originally Posted by flowgeek View Post
hi all,

i'm experimenting with interIsoFoam on a similar test case to the "static bubble case" used for the validation here:
https://www.sciencedirect.com/scienc...45793020302929

and i get some strange results...

and some attachments...
Attached Images
File Type: png interIsoFoam vs. interFoam.PNG (52.1 KB, 49 views)
Attached Files
File Type: zip interIsoFoam_plic_dambreakSettings_start.zip (15.3 KB, 14 views)
flowgeek is offline   Reply With Quote

Old   November 23, 2021, 04:52
Default
  #92
Member
 
Join Date: Nov 2012
Posts: 83
Rep Power: 13
Henning86 is on a distinguished road
The results look really strange ...

the plicRDF scheme "only" increase the accuracy of the interface advection but the standard OpenFOAM surface tension model is here most likely the issue. You should get better results if you change the gradient scheme in fvSchemes



pointCellsLeastSquares


You could also test this library that adds new surface tension models



https://github.com/DLR-RY/twophaseflow
roenby likes this.

Last edited by Henning86; November 24, 2021 at 05:43.
Henning86 is offline   Reply With Quote

Old   December 3, 2021, 05:14
Default
  #93
New Member
 
Alexander Meier
Join Date: Feb 2017
Posts: 15
Rep Power: 9
flowgeek is on a distinguished road
Quote:
Originally Posted by Henning86 View Post
You should get better results if you change the gradient scheme in fvSchemes

pointCellsLeastSquares


You could also test this library that adds new surface tension models

https://github.com/DLR-RY/twophaseflow

thanks! will try the different gradient scheme soon and post the results here.
roenby likes this.
flowgeek is offline   Reply With Quote

Old   December 17, 2021, 02:45
Default
  #94
New Member
 
Alexander Meier
Join Date: Feb 2017
Posts: 15
Rep Power: 9
flowgeek is on a distinguished road
Quote:
Originally Posted by Henning86 View Post
The results look really strange ...

the plicRDF scheme "only" increase the accuracy of the interface advection but the standard OpenFOAM surface tension model is here most likely the issue. You should get better results if you change the gradient scheme in fvSchemes

pointCellsLeastSquares


You could also test this library that adds new surface tension models



https://github.com/DLR-RY/twophaseflow
short update - of course with a question ;-)

At the moment i'm performing several tests with various settings.
The pointCellsLeastSquares grad scheme helps a bit but the shape of the droplet is still not round (I also noticed an error in my first post --> also with interFoam the shape is not perfect, but better)
So far it looks like the main problem is the mesh --> i think the flat cells cause the problems (x,y are five times larger than z - probably with calculating the surface tension usind the gradient?). If i use perfectly cubic cells, the shape of the droplet is correct...

is there any known limit for the aspect ratio of the cells for inter(Iso)Foam?
flowgeek is offline   Reply With Quote

Old   December 17, 2021, 15:35
Default
  #95
Member
 
Johan Roenby
Join Date: May 2011
Location: Denmark
Posts: 92
Rep Power: 20
roenby will become famous soon enough
Hi flowgeek


In the Allrun script of the interIsoFoam_plic_dambreakSettings_start.zip you posted above you call setFields. In system/setFieldsDict you initalise a box shaped droplet. Is this on purpose? Aren't you trying to initialise a circular droplet?


Cheers,
Johan
roenby is offline   Reply With Quote

Old   December 18, 2021, 18:28
Default
  #96
New Member
 
Alexander Meier
Join Date: Feb 2017
Posts: 15
Rep Power: 9
flowgeek is on a distinguished road
hi johan,

yes that box-shaped droplet is intentional.
Of course it is an unphysical starting condition, but i would expect the solver to be able to get to a physical solution. (With 90° contact angle it is able to do so, with perfectly cubic cells as well...)

It obviously shows that my problem is the meshing and with the flat cells i get a stable unphysical solution...
Interestingly there is a difference between the surface reconstruction algorithms (interFoam vs. interIsoFoam) - maybe because the iso-advector algorithms generate a smoother interface, which promotes this effect?

So i need to find somewhere a compromise between a reasonable simulation time and how accurate my solution will be (the droplet is only a test-case to optimize my settings for a much larger dynamic case - in the large case with a more complex mesh the effect of the interface "alinging to cells" is even more pronounced)

cheers - and thanks for looking at my stuff!
alex
flowgeek is offline   Reply With Quote

Old   June 14, 2022, 05:31
Default
  #97
New Member
 
Join Date: Sep 2021
Posts: 8
Rep Power: 4
bumble is on a distinguished road
Hi,
Thanks a lot for this wonderful implementation. I went through the paper and I really enjoyed the spirit of the iso-surface formation. I am using isoadvector with PLIC reconstruction scheme and the sharpness of the interface is just amazing when I compare MULES+isoSurface. But I am facing one issue regarding the interface deformation. The interface actually folds randomly (probably due to some reason), and I am trying to figure out what may be the underlying reasons.

Some details on the simulations: I am running a nucleate boiling case. The domain size is 3mm x 6mm. Grid is 400 divisions in 3mm. Axis-symmetric simulation
Solver: multiRegionPhaseChangeFlow

I am attaching couple of clips for the reference

Isoadvector+PLIC
https://youtu.be/uUPw06IqmIk

MULES+Isosurface
https://youtu.be/JMrxwp7jOuE

Any inputs on the same problem are much appreciated.
Thank you
bumble is offline   Reply With Quote

Old   June 15, 2022, 20:15
Default
  #98
New Member
 
Join Date: Sep 2021
Posts: 8
Rep Power: 4
bumble is on a distinguished road
Hi,
I gave more thoughts on why such behavior is seen. The algorithm of the isoAdvector is very intuitive and velocity field will obviously affect the interface. So, I compared the velocity fields in both the cases. I get drastically different velocity fields and I have tried upwind scheme for gradient terms, but I haven't got any improvement. Could anyone give some suggestions on how to remove these deformations? I am attaching couple of clips for reference.

Isoadvector
https://youtu.be/BBeNtv6UrcU

MULES
https://youtu.be/zfbOVziiR1M

Thank you in advance.
bumble is offline   Reply With Quote

Old   June 20, 2022, 05:20
Default
  #99
New Member
 
Join Date: Sep 2021
Posts: 8
Rep Power: 4
bumble is on a distinguished road
Hi,
The interface deformation was fixed by changing the curvature model from gradAlpha to RDF. Thanks
bumble is offline   Reply With Quote

Reply

Tags
interface, interfoam, isoadvector, multiphase, unstructured mesh, vof


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
[Other] simulation of closing the gate using moving mesh simin_ds OpenFOAM Meshing & Mesh Conversion 8 April 12, 2019 05:49
rhoPimpleFoam hardship petrus OpenFOAM Running, Solving & CFD 0 October 7, 2016 02:41
Wrong flow in ratating domain problem Sanyo CFX 17 August 15, 2015 06:20
interFoam/kOmegaSST tank filling with printStackError/Mules simpomann OpenFOAM Running, Solving & CFD 3 February 17, 2014 17:06
T Junction Stability ignacio OpenFOAM Running, Solving & CFD 5 May 2, 2013 10:44


All times are GMT -4. The time now is 11:16.