I have implemented (with the h
I have implemented (with the help of you all) rotating wall boundary conditions and single reference frame for simpleFoam. Now i want to implement Multiple Reference Frame (rotor / stator). I don't need topological change, just one mesh is rotating and the other is static.
Thanks for your hints. Bests Gabriel |
Hello Gabriel,
it's already i
Hello Gabriel,
it's already implemented in OF 1.4. See OpenFOAM-1.4/tutorials/MRFSimpleFoam Regards, A. |
Sorry, thanks. I just looked i
Sorry, thanks. I just looked in FoamX.
Regards, Gabriel |
Hi, everyone!
I've tried to r
Hi, everyone!
I've tried to run tutorial-case MixerVessel2D (MRFSimpleFoam), but I've got an Error message --> FOAM FATAL ERROR : cannot find MRF faceZone rotor From function Foam::MRFZone::MRFZone(const fvMesh& , const dictionary&) in file cfdTools/general/MRF/MRFZone.C at line 71. FOAM exiting thanks, Paul. |
Hi,
I think you have to exe
Hi,
I think you have to execute the mixerVessel2D\makeMesh script first. This builds the mesh and sets up the case before you can run it. Regards Jason |
Hallo,
the question may be qu
Hallo,
the question may be quite stupid, but how can I execute makeMesh-script? I've tried allready simple double-click, but that does not lead to any positive results - MRF face Zone were not found... |
I'M sorry,
I ran setsToZones
I'M sorry,
I ran setsToZones .. mixerVessel2D -noFlipMap manually, and error message disapeared. But instead of that following mistake comes: Starting time loop Time = 1 smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.0404075, No Iterations 2 smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 0.0403676, No Iterations 2 #0 Foam::error::printStack(Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream&) in "/home/plmauk/OpenFOAM/OpenFOAM-1.4.1/lib/linuxGccDPOpt/libOpenFOAM.so" #1 Foam::sigSegv::sigSegvHandler(int) in "/home/plmauk/OpenFOAM/OpenFOAM-1.4.1/lib/linuxGccDPOpt/libOpenFOAM.so" #2 Uninterpreted: [0x110420] #3 Foam::MRFZone::relativeFlux(Foam::GeometricField<d ouble,>&) const in "/home/plmauk/OpenFOAM/OpenFOAM-1.4.1/lib/linuxGccDPOpt/libfiniteVolume.so" #4 Foam::MRFZones::relativeFlux(Foam::GeometricField< double,>&) const in "/home/plmauk/OpenFOAM/OpenFOAM-1.4.1/lib/linuxGccDPOpt/libfiniteVolume.so" #5 main in "/home/plmauk/OpenFOAM/plmauk-1.4.1/applications/bin/linuxGccDPOpt/MRFSimpleFoam " #6 __libc_start_main in "/lib/libc.so.6" #7 Foam::regIOobject::readIfModified() in "/home/plmauk/OpenFOAM/plmauk-1.4.1/applications/bin/linuxGccDPOpt/MRFSimpleFoam " Speicherzugriffsfehler Have anybody an idea, what does it mean? |
Hi
Go to the mixerVessel2D
Hi
Go to the mixerVessel2D directory and type ./makeMesh it should then run through blockMesh etc automatically. Then go up one directory and type MRFSimpleFoam . mixerVessel2D and it should work Jason |
Thank you very much, Jason,
i
Thank you very much, Jason,
it works actually! best regards, Paul. |
Great,
One other thing, I d
Great,
One other thing, I dont think you need the dynamicMeshDict file in the constant directory (left there by mistake?), you only need the MRFZones file which states the zone which is rotating, an origin point, the axis (at the origin point) which the rotation occurs around and the omega (i think its in rpm but Im not sure). And I think its based on an incompressible solver so you need to multiply the calculated pressure by the density to get the real pressure in Pa. Jason |
Hello everyone,
I want to s
Hello everyone,
I want to simulate the aerodynamics of a car using MRFsimpleFoam. The car computer model is imported as .stl file. It was meshed with snappyHexMesh in OpenFoam 1.5 (that's why it must be an .stl file). The reason why I post my problem here, is that I want to take into consideration the movement of the wheels of the car, as they have a great influence on the aerodynamics of the car. This can be generally done by using a multiple reference frame (MRF) boundary condition. For this reason I need MRFsimpleFoam. My question is, how can I define the wheels of my .stl-car as patches which can be written in the MRFZones input file? Is there a possibility to get the names of the mesh elements which form the wheels and put them together to patches? For your ideas I would be very grateful, Yours Sebastian Vogl |
Dear Sebastian,
Seems a bit
Dear Sebastian,
Seems a bit strange - surely all you need for the wheels is a moving wall, not a separate reference frame? Gavin |
Dear Gavin,
thank you very
Dear Gavin,
thank you very much for your reply. Meanwhile I could solve this problem on my own. Yours, Sebastian |
Continuing this nicely named t
Continuing this nicely named thread with another topic:
The MRF class reside in the "general" section of cfdTools. However, it seems to me that it must be modified for compressible or possibly multiphase codes. I mean, the relative flux in MRFZone.C is calculated as the volume swept by a face, whereas in the compressible case (rho!=1) where phi is massflux the relative flux should contain rho, right? So, I have overloaded the MRFZone::relativeFlux function to allow const volScalarField& rho in the arguments and calculate phi as phi[facei] -= rhof[facei] * ((Omega ^ (Cf[facei] - origin))) & Sf[facei]; However, the solver bails out (p-solver) after a number of iterations. (Hence this post.) Am I wrong in my assumptions about compressible MRFZones? cheers Niklas |
Seems to work if the density i
Seems to work if the density is considered in the application code instead for in the MRF. Using the volumetric relative flux from MRFZone I added density in pEqn.H of rhoSimpleFoam as follows:
{ surfaceScalarField phiv = fvc::interpolate(U) & mesh.Sf(); surfaceScalarField rhof = fvc::interpolate(rho); mrfZones.relativeFlux(phiv); phi = phiv*rhof; } No problems with that during test, so far. Niklas |
All times are GMT -4. The time now is 18:50. |