- **OpenFOAM Pre-Processing**
(*http://www.cfd-online.com/Forums/openfoam-pre-processing/*)

- - **dsmcFoam setup**
(*http://www.cfd-online.com/Forums/openfoam-pre-processing/120773-dsmcfoam-setup.html*)

dsmcFoam setupTo the OpenFoam community,
I have been trying to get OpenFOAM's dsmcFoam solver to work properly and with the numerous issues I have gotten I am unsure if it is due to the installation (which I have re-installed twice) or the setup I've done. I have searched online for a while and can't find any good sources that describe the use of dsmcFoam. In an effort to improve my understanding of how to run dsmcFoam (and OpenFOAM in general) I have decided to start writing in detail the use of each file and was hoping someone could tell me where I am wrong in the following descriptions. I will be using a simple fluid flow through a pipe with patches defined for “inlet”, “outlet” and “walls”. 0 Folder Files: Dimensions are defined by [kg,m,s,K,mol,A,cd] in which the value represents the exponent. Ex. [1 -1 -2 0 0 0 0] is kg/(m*s^2) internalField{} – This defines the initial properties of the fluid flow. boundaryField{} – This defines the boundary conditions of the system and are kept constant. type inletOutlet; inletValue uniform (0 0 0); value uniform (0 0 0); boundary T (Scalar) – The temperature defined for each patch. In the instance of a pipe, I've defined everything the same for it being initially at room temp: Units (K) internalField{}- uniform 300; // Your initial fluid Temperature is defined here boundaryField{}- Inlet: type fixedValue; value uniform 300; Outlet: type fixedValue; value uniform 300; Walls: type fixedValue; value uniform 300; boundaryU (Vector) – The fluid's primary velocity? I am unsure of how to properly define this... Units (m/s) internalField{}- uniform (0 0 2); // Your initial fluid velocity is defined here boundaryField{}- Inlet: type fixedValue; value uniform (0 0 0); Outlet: type fixedValue; value uniform (0 0 2); Walls: type fixedValue; value uniform (0 0 2); dsmcRhoN (Scalar) – The population of the particles in each cell. A readme says that “the boundary conditions are zeroGradient because only cell data is meaningful” so the following was defined: Units (1/m^3) internalField{}- uniform 0; // Your initial fluid population is defined here boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; dsmcSigmaTcRMax (Scalar) – This file was not given in the tutorials so it was hard to understand (also, I could not find a good explanation of it online). In the readme it says that it’s “used in the selection of collision partners”. I have essentially guessed on how to define this file. I believe the Units should be 1/m^3 to correspond with particles/volume. Units (1/m^3) internalField{}- uniform 0; // You have 0 chance of collisions when no fluid is present initially boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; fD (Vector) – This file holds the stress vector (force density) for the flow field. I am a little confused by what this implies here… Units (kg/(m*s^2)) internalField{}- uniform (0 0 0) // With no fluid, there is no force? boundaryField{}- Inlet: type calculated; value uniform (0 0 0); Outlet: type calculated; value uniform (0 0 0); Walls: type calculated; value uniform (0 0 0); iDof (Scalar) – I believe this file defines the number density of particles in the system. Units (1/m^3) internalField{}- uniform 0; // No particles at first so no number density boundaryField{}- Inlet: type calculated; value uniform (0 0 0); Outlet: type calculated; value uniform (0 0 0); Walls: type calculated; value uniform (0 0 0); internalE(Scalar) - Units (kg*m^2/s^2)) // Re-defined as joules. For some reason tutorial had units as Pascal internalField{}- uniform 0; // No particles at first so no energy boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; linearKE(Scalar) - Units (kg*m^2/s^2)) // Re-defined as joules. For some reason tutorial had units as Pascal internalField{}- uniform 0; // No particles at first so no energy boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; momentum(Vector) – Units (kg*m/s)) // Re-defined for P=m*v=kg*m/s. For some reason tutorial had (kg/(m^2*s)) internalField{}- uniform 0; // No particles at first so no momentum boundaryField{}- Inlet: type calculated; value uniform (0 0 0); Outlet: type calculated; value uniform (0 0 0); Walls: type calculated; value uniform (0 0 0); q(Scalar) – This is the heat flux through the system. Units (kg/s^3) internalField{}- uniform 0; // No particles at first so no heat flux boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; rhoM(Scalar) – This is the density by mass of particles Units (kg/m^3) internalField{}- uniform 0; // No particles at first so no mass density boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; rhoN(Scalar) – This is the density by number of particles Units (1/m^3) internalField{}- uniform 0; // No particles at first so no number density boundaryField{}- Inlet: type calculated; value uniform 0; Outlet: type calculated; value uniform 0; Walls: type calculated; value uniform 0; Constant folder: dsmcProperties – This defines the fluid in the system nEquivalentParticles 1.2e12 // Number of particles WallInteractionModel MaxwellianThermal // How the particles interact with the wall BinaryCollisionModel VariableHardSphere // How the particles interact with themselves VariableHardSphereCoeffs {Tref 300;} // Unsure of this variable… Reference Temp? InflowBoundaryModel FreeStream; // How the fluid is described? FreeStreamCoeffs {numberDensities {N2 1.0e20;}}; // Number density of the particle typeIdList (N2); // List of particles moleculeProperties // Material properties { N2 { mass 46.5e-27; diameter 4.17e-10; internalDegreesOfFreedom 2; omega 0.74; } } System folder: controlDict – This describes the system and how it should be run. All functions were pre-defined (by grabbing file from the tutorial) as follows: dsmcFields1{ type dsmcFields; functionObjectLibs ( "libutilityFunctionObjects.so" ); enabled true; outputControl outputTime; } fieldAverage1{ type fieldAverage; functionObjectLibs ( "libfieldFunctionObjects.so" ); outputControl outputTime; resetOnOutput off; fields( rhoN {mean on; prime2Mean off; base time;} rhoM {mean on; prime2Mean off; base time;} dsmcRhoN {mean on; prime2Mean off; base time;} dsmcSigmaRcTMax {mean on; prime2Mean off; base time;} // I added momentum {mean on; prime2Mean off; base time;} linearKE{mean on; prime2Mean off; base time;} internalE{mean on; prime2Mean off; base time;} iDof{mean on; prime2Mean off; base time;} q {mean on; prime2Mean off; base time;} fD{mean on; prime2Mean off; base time;} ); } From dsmcFoam’s readme: “Fields are used by dsmcFoam in several ways, some of which are different to their use elsewhere in OpenFOAM. None of these fields are solved by partial differential equations; they are used either to record simulation data, or to supply boundary data.” 1. Do I need to define anything for the fluid? Or is the fluid inherently defined? In the readme it says that the only fields that supply data to dsmcFoam are the boundaryT and boundaryU files. Thus, I have left all the other files above defining everything as “type calculated; value uniform 0;”. Is this okay? 2. In boundaryU, the velocity defined in internalField was (0 0 2). Does the 2 specify fluid traveling in the +z direction at 2 m/s? 3. In boundaryU I have defined the internalField, inlet and outlet as (0 0 2). Does this mean that I have told OpenFoam that there is fluid traveling through the inlet at 2 m/s initially, through the outlet at 2 m/s initially and through the system at 2 m/s at all times (where ‘at all times’ is defined through the internalField)? 4. In dsmcProperties, should numberDensities total to nEquivalentParticles? 5. In controlDict, what are these functions for? It looks like they define how things are output… but I’m unsure. 6. Are the following files in the system folder required for dsmcFoam? decomposeParDict, fvSchemes, fvSolution |

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