# anisotropic porous media in OpenFOAM

 User Name Remember Me Password
 Register Blogs Members List Search Today's Posts Mark Forums Read

 October 23, 2012, 18:47 anisotropic porous media in OpenFOAM #1 Member   ,... Join Date: Apr 2011 Posts: 92 Rep Power: 6 Does anyone have any experience in simulating flow in an-isotropic porous media in OF? I mean simulations in which the permeability in x direction is different from the permeability in y direction. My main problem is that when I am adding the darcy soource term as + ((1/Perm)*(fvm::Sp(Visc,U))) I do not know how to tell the OF that Perm will be different based on the direction! comments are appreciated!

 October 24, 2012, 04:48 #2 Senior Member   Nima Samkhaniani Join Date: Sep 2009 Location: Tehran, Iran Posts: 1,211 Blog Entries: 1 Rep Power: 17 hi mahdi is in this condition permeability ("Prem") a vectorField? if yes, you can define a volVectorField for Prem, then assign your directional variation with setFields in 0 folder

 October 24, 2012, 09:37 Permeability Vector #3 Member   ,... Join Date: Apr 2011 Posts: 92 Rep Power: 6 Hi nimasam Thanks for the comment. But, if I define the permeability as volVectorField then, when I want to multiply it by velocity what kind of vector multiplication do I have to use; definitely not inner or cross product. Right?

 October 24, 2012, 09:52 #4 Senior Member     Hisham Elsafti Join Date: Apr 2011 Location: Braunschweig, Germany Posts: 249 Blog Entries: 10 Rep Power: 9 Hi Mahdi In the case of non-isotropic permeability, the permeability is a symmetric tensor. For anisotropy, you should assign zero off-diagonal values and be left with kxx, kyy and kzz. Hope this helps! Regards Hisham

 October 24, 2012, 09:57 multiplying permeability tensor and velocity vector #5 Member   ,... Join Date: Apr 2011 Posts: 92 Rep Power: 6 Dear Hisham Thanks for the comment. I know that true, but, as I mentioned in my previous post, I am not sure how to multiply permeability tensor and velocity vector in the momentum equation. What kind of multiplication operator do I have to use?

 October 24, 2012, 10:26 #6 Senior Member   Nima Samkhaniani Join Date: Sep 2009 Location: Tehran, Iran Posts: 1,211 Blog Entries: 1 Rep Power: 17 dear mahdi, if you want to divide Ux/Kx , Uy/Ky , Uz/Kz then i guess you may want to use some thing like this : forAll(U,celli) { S[celli].x() = U[celli].x()/Kx[celli].x(); ........ }

 October 24, 2012, 10:35 #7 Senior Member     Hisham Elsafti Join Date: Apr 2011 Location: Braunschweig, Germany Posts: 249 Blog Entries: 10 Rep Power: 9 I think you first would have to define the tensor as k (kxx 0 0 kyy 0 kzz), then get the inverse of the tensor as inv(k). The product should be an inner product: + (inv(k) & (fvm::Sp(Visc,U)) I would appreciate it if you report what happened! Best regards, Hisham

 October 24, 2012, 10:55 #8 Member   ,... Join Date: Apr 2011 Posts: 92 Rep Power: 6 Dear Hisham I have define a tensor named PermTenInv which has diagonal terms of 1/kxx,1/kyy and 1/kzz. Now when i am doing explicit calculations in form of + ((PermTen) & (fvc::Sp(Visc,U))) there is no error. However, for implicit calculations in form of ((PermTen) & (fvm::Sp(Visc,U))) I get the following error -------------------------------------------------------------------- BR1IM003.C:84:40: error: no match for ‘operator&’ in ‘PermTen & Foam::fvm::Sp(const Foam::dimensionedScalar&, Foam::GeometricField&) [with Type = Foam::Vector, Foam::dimensionedScalar = Foam::dimensioned](((Foam::GeometricField, Foam::fvPatchField, Foam::volMesh>&)(& U)))’ /opt/openfoam171/src/OpenFOAM/lnInclude/wordI.H:167:19: note: candidates are: Foam::word Foam:perator&(const Foam::word&, const Foam::word&) /opt/openfoam171/src/OpenFOAM/lnInclude/dimensionSet.H:273:29: note: Foam::dimensionSet Foam:perator&(const Foam::dimensionSet&, const Foam::dimensionSet&) /opt/openfoam171/src/finiteVolume/lnInclude/readPISOControls.H:8:10: warning: unused variable ‘momentumPredictor’ /opt/openfoam171/src/finiteVolume/lnInclude/readPISOControls.H:11:10: warning: unused variable ‘transonic’ /opt/openfoam171/src/finiteVolume/lnInclude/readPISOControls.H:14:9: warning: unused variable ‘nOuterCorr’ make: *** [Make/linux64GccDPOpt/BR1IM003.o] Error 1 -------------------------------------------------------------------------- Unfortunately, I have to discretise this source term implicitly. Any ideas how to fix this error?

 October 24, 2012, 11:23 #9 Senior Member     Hisham Elsafti Join Date: Apr 2011 Location: Braunschweig, Germany Posts: 249 Blog Entries: 10 Rep Power: 9 Dear Mahdi, It is really sad that this did not work directly. You can report this as a bug (assuming a similar feature should be available). If you are highly motivated for your problem you can try to add a new fvm::Sp function to fvmSup.C/.H that can take a "dimensionedVector & sp" argument. You then have to dig deep into OpenFOAM's number crunching mechanisms and figure out which elements of fvm.diag() should you multiply by which component. Here ends my ideas. I hope you can find an easier solution! Code: ```template 00153 Foam::tmp > 00154 Foam::fvm::Sp 00155 ( 00156 const dimensionedScalar& sp, 00157 const GeometricField& vf 00158 ) 00159 { 00160 const fvMesh& mesh = vf.mesh(); 00161 00162 tmp > tfvm 00163 ( 00164 new fvMatrix 00165 ( 00166 vf, 00167 dimVol*sp.dimensions()*vf.dimensions() 00168 ) 00169 ); 00170 fvMatrix& fvm = tfvm(); 00171 00172 fvm.diag() += mesh.V()*sp.value(); 00173 00174 return tfvm; 00175 }``` Regards, Hisham

 October 24, 2012, 12:44 #10 Member   ,... Join Date: Apr 2011 Posts: 92 Rep Power: 6 THnaks Hisham. I am going to discuss it in a new post to be sure that this is a bug in OF.

 September 16, 2013, 09:05 #11 Member   Anja Miehe Join Date: Dec 2009 Location: Freiberg / Germany Posts: 48 Rep Power: 9 Hello Mhadi, is there any progress in the subject? I am coding something similar for solidification and encounter the same problem. Regards, Anja

 April 7, 2016, 03:34 #12 New Member   Vitor Geraldes Join Date: Dec 2009 Location: Lisbon, Portugal Posts: 19 Rep Power: 8 ::::::::::::::::::::::::::::::::::::::::: Last edited by vitor.geraldes@ist.utl.pt; April 8, 2016 at 19:48.

 July 25, 2016, 16:20 Any solution? #13 New Member   Mateus Palharini Schwalbert Join Date: May 2011 Posts: 18 Rep Power: 7 Hi y'all, I also need to implement an implicit anisotropic source term. Did anyone find a way to do that? fvm::Sp seems to not accept a tensor as coefficient... thanks

 July 25, 2016, 17:14 #14 New Member   Vitor Geraldes Join Date: Dec 2009 Location: Lisbon, Portugal Posts: 19 Rep Power: 8 Try to create an homogeneous hydrodynamic resistance and then subtract a given fraction (fAniso) in the direction nT (unitary vector): + fvm::Sp(Rmush,U) - fAniso*Rmush*(U&nT)*nT if fAniso is 1, the resistance in the direction nT is zero, if fAniso is 0 then you have no anisotropy.

 July 25, 2016, 17:29 Didn't get it #15 New Member   Mateus Palharini Schwalbert Join Date: May 2011 Posts: 18 Rep Power: 7 Thanks for the reply, Vitor, but I didn't get it. In your suggestion, what is Rmush? Because if it is a tensor, it does not work... Maybe what you're suggesting is something I've already tried: to implement that in 2 terms, one implicit and isotropic, and one explicit and anisotric. But in my case it does not work, because the largest part of the resistance is specifically the anisotropic part, and any explicit treatment of that refuses to converge...

 July 25, 2016, 17:59 #16 New Member   Vitor Geraldes Join Date: Dec 2009 Location: Lisbon, Portugal Posts: 19 Rep Power: 8 Rmush is a volScalarField which may be computed for instance by the Kozeny Carman correlation.

 July 25, 2016, 23:14 How to code the anisotropic heterogeneous source term as implicit? #17 New Member   Mateus Palharini Schwalbert Join Date: May 2011 Posts: 18 Rep Power: 7 Ok, but this way the anisotropic part is still explicit, right? Any way to code the anisotropic heterogeneous source term as implicit?

 Thread Tools Display Modes Linear Mode

 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 OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post beginer CFX 2 May 8, 2013 02:10 VT_Bromley FLUENT 5 March 23, 2011 11:38 magnounibo FLUENT 0 April 9, 2009 08:18 Arunav Gogoi Main CFD Forum 1 March 28, 2006 09:28 A.Joshi FLUENT 0 October 21, 2003 22:09

All times are GMT -4. The time now is 20:17.

 Contact Us - CFD Online - Top