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

Boundary condition for Internal Baffle

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 30, 2019, 11:02
Default Boundary condition for Internal Baffle
  #1
Member
 
Join Date: Apr 2016
Posts: 30
Rep Power: 10
shanvach is on a distinguished road
Hi all,

I have certain doubts regarding the use of internal baffle. So I am using icoUncoupledkinematicParcelFoam. I need to inject particles from somewhere inside the domain. Hence I created an internal baffle using the stl file. However I do not want to assign different boundary conditions for the baffle.I just need the baffle to use patchInjection inside the domain. The rest of the field values (u,p,k,omega,etc) should be as dictated by the internal field.I have specified various boundary conditions but all of them assign the value (0 0 0) to the baffle.hence there is a discontinuity observed in the domain. What boundary condition for the baffle should I use?
Following is my createBafflesDict
Code:
  

internalFacesOnly true;

// Optionally do not read/convert/write any fields.
//noFields true;


// Baffles to create.
baffles
{
    baffleFacesThermoBaffle1D
    {
        //- Use surface to select faces and orientation.
        type        searchableSurface;
        surface     triSurfaceMesh;
        name        patch0.stl;
        //- Optional flip
        //flip        false;


        // Generate patchGroup baffle1 with two patches:
        //  - baffle1_master
        //  - baffle1_slave
        patchPairs
        {
            type            wall;
            //- Optional override of added patchfields. If not specified
            //  any added patchfields are of type calculated.
            patchFields
            {
            patchFields
            {
                 U
                {
                    type            calculated; 
					//value        $internalField;
					
                }
			    p
                {
                    type           calculated; 
					//value        $internalField;
                }
				
			     phi
                {
                    type           calculated; 
					//value        $internalField;               
                }	
				 omega
                {
                    type            calculated; 
					//value        $internalField;                  
                }
				 nut
                {
                    type         calculated; 
					//value        $internalField;               
                }
				k
                {
                    type        calculated; 
					//value        $internalField;               
                }
            }
        }
       }
     }
    }
Furthermore, I also tried using the baffle in simpleFoam.But while solving for the field values I got the following error.

Code:
[n2c1-13:23765] 13 more processes have sent help message help-opal-shmem-mmap.txt / mmap on nfs
[n2c1-13:23765] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
[8] 
[8] 
[8] --> FOAM FATAL ERROR: 
[8] cannot be called for a calculatedFvPatchField
    on patch baffleFacesThermoBaffle1D_master of field U in file "/gpfs_common/share02/ck/svachha/October2019/gcc482-v1706/OpenFOAM-v1706/tutorials/incompressible/simpleFoam/nasal_5lpm/processor8/0/U"
    You are probably trying to solve for a field with a default boundary condition.
[8] 
[8]     From function Foam::tmp<Foam::Field<Type> > Foam::calculatedFvPatchField<Type>::gradientInternalCoeffs() const [with Type = Foam::Vector<double>]
[8]     in file fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C at line 187.
[8] 
FOAM parallel run aborting
[8] 
[5] 
[5] 
[5] --> FOAM FATAL ERROR: 
[5] cannot be called for a calculatedFvPatchField
    on patch baffleFacesThermoBaffle1D_master of field U in file "/gpfs_common/share02/ck/svachha/October2019/gcc482-v1706/OpenFOAM-v1706/tutorials/incompressible/simpleFoam/nasal_5lpm/processor5/0/U"
    You are probably trying to solve for a field with a default boundary condition.
[5] 
[5]     From function Foam::tmp<Foam::Field<Type> > Foam::calculatedFvPatchField<Type>::gradientInternalCoeffs() const [with Type = Foam::Vector<double>]
[5]     in file fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C at line 187.
[5] 
FOAM parallel run aborting
[5] 
[9] 
[9] 
[9] --> FOAM FATAL ERROR: 
[9] cannot be called for a calculatedFvPatchField
    on patch baffleFacesThermoBaffle1D_master of field U in file "/gpfs_common/share02/ck/svachha/October2019/gcc482-v1706/OpenFOAM-v1706/tutorials/incompressible/simpleFoam/nasal_5lpm/processor9/0/U"
    You are probably trying to solve for a field with a default boundary condition.
[9] 
[9]     From function Foam::tmp<Foam::Field<Type> > Foam::calculatedFvPatchField<Type>::gradientInternalCoeffs() const [with Type = Foam::Vector<double>]
[9]     in file fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C at line 187.

[1] 
[1]     From function Foam::tmp<Foam::Field<Type> > Foam::calculatedFvPatchField<Type>::gradientInternalCoeffs() const [with Type = Foam::Vector<double>]
[1]     in file fields/fvPatchFields/basic/calculated/calculatedFvPatchField.C at line 187.
[1] 
FOAM parallel run aborting
[1] 
[1] #0  Foam::error::printStack(Foam::Ostream&) at ??:?
[0] #1  Foam::error::abort() at ??:?
[1] #1  Foam::error::abort() at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
[5] #1   at ??:?
 at ??:?
 at ??:?
Foam::error::abort()[8] #1  Foam::error::abort()[6] #1  Foam::error::abort()[2] #1  Foam::error::abort()[4] #1  Foam::error::abort()[3] #1  Foam::error::abort()[9] #1  Foam::error::abort()[7] #1  Foam::error::abort() at ??:?
 at ??:?
 at ??:?
 at ??:?
[2] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[8] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[4] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[6] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const at ??:?
 at ??:?
 at ??:?
 at ??:?
[9] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[5] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[7] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const[3] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const at ??:?
[0] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const at ??:?
[1] #2  Foam::calculatedFvPatchField<Foam::Vector<double> >::gradientInternalCoeffs() const at ??:?
 at ??:?
[0] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[1] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
 at ??:?
 at ??:?
 at ??:?
[8] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[4] #3   at ??:?
 at ??:?
Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[2] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
[5] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[3] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[7] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)[9] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
[6] #3  Foam::fv::gaussLaplacianScheme<Foam::Vector<double>, double>::fvmLaplacianUncorrected(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
[Foam::IncompressibleTurbulenceModel<Foam::transportModel>::divDevReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const at ??:?
[1] #5  Foam::fv::laplacianScheme<Foam::Vector<double>, double>::fvmLaplacian(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) at ??:?
[4] #9   at ??:?
[2] #9   at ??:?
[6] #9   at ??:?
[8] #9   at ??:?
[7] #9   at ??:?
[9] #9   at ??:?
[3] #9   at ??:?
[5] #9   at ??:?
[0] #6  Foam::tmp<Foam::fvMatrix<Foam::Vector<double> > > Foam::fvm::laplacian<Foam::Vector<double>, double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&)???????? at ??:?
[8] #10  __libc_start_main at ??:?
[6] #10  __libc_start_main at ??:?
[4] #10  __libc_start_main at ??:?
[2] #10  __libc_start_main at ??:?
[5] #10  __libc_start_main at ??:?
[9] #10  __libc_start_main at ??:?
[7] #10  __libc_start_main at ??:?
[3] #10  __libc_start_main at ??:?
[0] #7  Foam::linearViscousStress<Foam::RASModel<Foam::IncompressibleTurbulenceModel<Foam::transportModel> > >::divDevRhoReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const at ??:?
[1] #6  Foam::tmp<Foam::fvMatrix<Foam::Vector<double> > > Foam::fvm::laplacian<Foam::Vector<double>, double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) in "/lib64/libc.so.6"
[8] #11   in "/lib64/libc.so.6"
[2] #11   in "/lib64/libc.so.6"
 in "/lib64/libc.so.6"
[6] #11  [4] #11   in "/lib64/libc.so.6"
[5] #11   in "/lib64/libc.so.6"
[9] #11   in "/lib64/libc.so.6"
[7] #11   in "/lib64/libc.so.6"
[3] #11  ???????? at ??:?
[0] #8  Foam::IncompressibleTurbulenceModel<Foam::transportModel>::divDevReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
 at ??:?
[1] #7  Foam::linearViscousStress<Foam::RASModel<Foam::IncompressibleTurbulenceModel<Foam::transportModel> > >::divDevRhoReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const at ??:?
[0] #9   at ??:?
[1] #8  Foam::IncompressibleTurbulenceModel<Foam::transportModel>::divDevReff(Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh>&) const[n2c1-13:23765] 7 more processes have sent help message help-mpi-api.txt / mpi-abort
I just want to create the internal baffle for patchInjection inside the domain. I don't want to affect the internal field. Can anyone guide me into what type of boundary condition should I use?

Your help in this matter is greatly appreciated.

Thanks and regards,
Shantanu Vachhani
shanvach is offline   Reply With Quote

Old   November 22, 2020, 17:52
Default
  #2
Senior Member
 
Farzad Faraji
Join Date: Nov 2019
Posts: 204
Rep Power: 7
farzadmech is on a distinguished road
Dear Shantanu Vachhani

Did you find an answer for your question?



Thanks,
Farzad
farzadmech is offline   Reply With Quote

Old   October 4, 2023, 11:24
Default
  #3
Senior Member
 
alainislas's Avatar
 
Alain Islas
Join Date: Nov 2019
Location: Mexico
Posts: 142
Rep Power: 6
alainislas is on a distinguished road
Did anyone find a solution for this?


In my case I want an internal baffle to imitate a wall inside my geometry (only for stopping particles, not flow)
alainislas is offline   Reply With Quote

Old   December 29, 2023, 02:32
Default
  #4
New Member
 
Örjan Fjällborg
Join Date: Aug 2019
Posts: 4
Rep Power: 6
klorfj is on a distinguished road
Quote:
Originally Posted by alainislas View Post
Did anyone find a solution for this?


In my case I want an internal baffle to imitate a wall inside my geometry (only for stopping particles, not flow)

Hi all,

I had also this problem and I created an infinitely thin baffle with a master side and a slave side patch (using topSet for creating the face zone set baffle_left). The patches are then connected with a cyclic boundary condition to let the flow field pass through unaffected. But the patches can now be used to interact with the particle cloud. For example to set the particles to rebound at the patches. The example code below can be inserted into the OFv2112 tutorial lagrangian/DPMFoam/Goldschmidt to add a plane a bit above the inlet that particles can not go through in the direction of gravity.

topoSetDict:
Code:
actions
(

    {
        name    BLL_cellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
        	box (-0.0075 -0.075 0) (0.0075 0.075 0.045);
    	}
    }
    {
        name    BLL_faceSet;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set BLL_cellSet;
			option all;
        }
    }
    
    {
        name    BML_cellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
        	box (-0.0075 -0.075 0.045) (0.0075  0.075 0.450);
	}
    }
    {
        name    BML_faceSet;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set BML_cellSet;
	option all;
        }
    }
    
    {
        name    baffle_left;
        type    faceSet;
        action  clear;
    }
    {
        name    baffle_left;
        type    faceSet;
        action  add;
        source  faceToFace;
        sourceInfo
        {
            set BLL_faceSet;
            option all;
        }
    }
    {
        name    baffle_left;
        type    faceSet;
        action  subset;
        source  faceToFace;
        sourceInfo
        {
            set BML_faceSet;
	    option all;
        }
    }
    {
        name    baffle_left;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet baffle_left;
	    option all;
        }
    }
);
createBafflesDict:
Code:
baffles
{
    
    // transparent baffle to the flow field
    baffle_left
    {
        //- Use predefined faceZone to select faces and orientation.
        type        faceZone;
        zoneName    baffle_left;

        patches
        {
            master
            {
                //- Master side patch
                name            fixedInternalWalls_1m;
                type            cyclic;
                neighbourPatch  fixedInternalWalls_1s;
            }
            slave
            {
                //- Slave side patch
                name            fixedInternalWalls_1s;
                type            cyclic;
                neighbourPatch  fixedInternalWalls_1m;
            }
        }
    }
}
Example for setting rebound at boundaries and at one side of the baffle in kinematicCloudProperties:
Code:
patchInteractionModel localInteraction;

    localInteractionCoeffs
    {
        patches
        (
            "(top|bottom|walls|frontAndBack|fixedInternalWalls_1s)"
            {
                type rebound;
                e    0.97;
                mu   0.09;
            }
        );
    }
I hope this helps someone!

Best Regards
Örjan
klorfj is offline   Reply With Quote

Reply

Tags
baffles, createbaffles, icouncoupledkinematic, internal baffle, simplefoam


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
Centrifugal fan-reverse flow in outlet lesds to a mass in flow field xiexing CFX 3 March 29, 2017 10:00
Problem in setting Boundary Condition Madhatter92 CFX 12 January 12, 2016 04:39
Internal Baffle Dynamic Boundary Condition schuyler OpenFOAM Pre-Processing 3 December 13, 2013 12:30
Question about heat transfer coefficient setting for CFX Anna Tian CFX 1 June 16, 2013 06:28
Error finding variable "THERMX" sunilpatil CFX 8 April 26, 2013 07:00


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