CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Cyclic vs ggi vs directMapped Patches (https://www.cfd-online.com/Forums/openfoam-solving/58027-cyclic-vs-ggi-vs-directmapped-patches.html)

jens_klostermann September 22, 2008 05:09

I have two conformal non plana
 
I have two conformal non planar patches (basically the same patch translated by an offset) which I want to couple as periodic in-/outlets:
http://www.cfd-online.com/OpenFOAM_D...ges/1/9268.png


With cyclics I was able to create those cyclic patches but as soon as I start calculation I get face matching errors.
1. How/Where does the cyclic boundary condition calculate the transformation (rotation, translation) tensor.
2. Is there a possibility to tell (force) the cyclic to a translation instead of rotation? Also tell it the direction? ...
3. ...similar to the directMapped patch, which I suppose works only on planar patches?

A last possibility is to use the ggi patch from 1.4.1-dev implemented by Martin Beaudoin:
4. How is the status on this?
5. How is the interpolation done for conformal patches?

fra76 September 22, 2008 13:30

Did you use the "createPatche"
 
Did you use the "createPatche" utility for creating the cyclic patches?

Francesco

jens_klostermann September 22, 2008 14:27

Hi Francesco, yes! I just
 
Hi Francesco,

yes!
I just read something that only works for planar faces and I figured out that it is possible to give OpenFoam-1.5 the choice whether the cyclic is rotational, translational or unknown in the boundary file. Now I have to figure out to use it the right way!

Jens

jens_klostermann September 22, 2008 15:20

Ok I try to answer some of the
 
Ok I try to answer some of the questions myself:

@1: The dirty stuff seems to be done in:
cyclicPolyPatch (which lives in $FOAM_SRC/OpenFOAM/meshes/polymesh/polyPatches/constraint/cyclic)
so I digg further there!

@2a: yes in the boundary file (OF-1.5)
@2b: It doesn't look like?! at least not like in directMapped patch. (OF-1.5 and OF-1.4.1-dev)

4. and 5. still open and

6. Does ggi work on non planar patches as it can be seen on the pictures above?
Jens

PS
There was some nice PseudoCode regading cyclics by Andrew Heather (Heather) on Wednesday, January 19, 2005 (quite some time ago), but it probably gut never really in the code because of the problems Mattijs pointed out later in the thread.

jens_klostermann September 29, 2008 11:18

I love to monologize! I dev
 
I love to monologize!

I devided my two patches in several ones with same face normal vector. Now it is possible to combine all patches with the parallel or antiparallel face normal vector.
First I got some http://www.cfd-online.com/OpenFOAM_D...ges/1/9357.png.
This was because in OF-1.4.x-dev the decision if face normal vectors are parallel or antiparallel which is done in src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic:
if (mag(n0 & n1) < 1 - SMALL)
is to tight in some cases. I just replaced it with
if (mag(n0 & n1) < 1 - cyclicPolyPatch::areaMatchTol)
which is done similar in OF-1.5. Unfortunately in OF-1.5 it still doesn't work.

Jens

jens_klostermann January 15, 2009 11:20

Hi Hrv, Hi Martin, I just d
 
Hi Hrv, Hi Martin,

I just downloaded OpenFOAM-1.5-dev_2009-01-12.tgz form http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/ and was hoping cyclic on nonconformal meshes is working, but my tests show only segmentation faults.

Since you are the ggi professionals, can one of you (or both) give me some hints on the STATUS of ggi and cyclicGgi?! Are they ready for testing?

Best regards Jens

PS: Here my testfiles , which are related to http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4824.html and http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4701.html

jens_klostermann January 15, 2009 11:22

Hi Hrv, Hi Martin, I just d
 
Hi Hrv, Hi Martin,

I just downloaded OpenFOAM-1.5-dev_2009-01-12.tgz form http://powerlab.fsb.hr/ped/kturbo/OpenFOAM/ and was hoping cyclic on nonconformal meshes is working, but my tests show only segmentation faults.

Since you are the ggi professionals, can one of you (or both) give me some hints on the STATUS of ggi and cyclicGgi?! Are they ready for testing?

Best regards Jens

PS: Here my testfiles , which are related to http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4824.html and http://www.cfd-online.com/OpenFOAM_Discus/messages/1/4701.html

mbeaudoin January 15, 2009 20:53

Hello Jens, Please provide
 
Hello Jens,

Please provide your complete test case.

Martin

jens_klostermann January 16, 2009 03:18

Hi Martin, I will try again
 
Hi Martin,

I will try again

Jens

jens_klostermann January 16, 2009 03:49

Hi Martin, I sent you an em
 
Hi Martin,

I sent you an email.

Jens

hjasak January 20, 2009 04:20

Hi Jens, For your info, I h
 
Hi Jens,

For your info, I have tried both your cases and they work fine. There was an error in the definition of cyclicGGI (relative rotation angles must have opposite sign), and once this got fixed, the latest snapshot works.

Hrv

jens_klostermann January 28, 2009 06:00

Hi Hrv, Hi Martin, ggiCycli
 
Hi Hrv, Hi Martin,

ggiCyclic in general works, at least with the testcase described above - which is good, but I 've got some more questions + Problems:

I test now the cyclicGgi with channel395 channelOoodles:

1. What means bridgeOverlap? If I am switching it off I get some Error:
ggi patch inoutA has 750 uncovered master faces and 750 uncovered slave faces. Bridging is switched off.

From function label ggiPolyPatch::shadowIndex() const
in file meshes/polyMesh/polyPatches/constraint/ggi/ggiPolyPatch.C at line 285.


Which I don't understand!

If i turn it on it runs but produces wrong results: http://www.cfd-online.com/OpenFOAM_D...your_image.gif. The values for the pressure are not the same on both patches, which may have its origin in the additional source term (gradP)? Maybe I am missusing cyclicGgi?

2. I want to use an AMG solver with cyclicGgi which one can I use?
RREAMG
MPEAMG
FPEAMG
GAMG - doesn't work
amgSolver - doesn't work


Jens

mbeaudoin January 28, 2009 09:04

Hello Jens, I have sent you
 
Hello Jens,

I have sent you a reply through email.

I will get back to you a bit later with some more comments.

Martin

mbeaudoin January 29, 2009 20:40

Hello Jens, A fix for handl
 
Hello Jens,

A fix for handling separation-only cyclicGGI is now available on the SVN.

Give it a spin, and don't hesitate to report any problem.

Martin

mou_mi March 26, 2009 11:03

1 Attachment(s)
Hello,

I compiled OpenFoam-1.5-dev, I made a test case to test cyclicGgi. the geometry is a simple box with cyclic in inlet and outlet, walls in top and bottom, and cyclicGgi in front and back. I attached the test case to this thread. When I ran that with icoFoam it gave me this error:

Create time

Create mesh for time = 0

Reading transportProperties

Reading field p

Cannot find 'value' entry on patch side1 of field p in file "/home/mou/OpenFOAM/mou-1.5-dev/run/mou_cases/cyclicGgi/0/p"
which is required to set the values of the generic patch field.
(Actual type cyclicGgi)

Please add the 'value' entry to the write function of the user-defined boundary-condition
or link the boundary-condition into libfoamUtil.so

file: /home/mou/OpenFOAM/mou-1.5-dev/run/mou_cases/cyclicGgi/0/p::side1 from line 34 to line 34.

From function genericFvPatchField<Type>::genericFvPatchField(con st fvPatch&, const Field<Type>&, const dictionary&)
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 72.

FOAM exiting

would you look at to the case files? I am thankful for any comment or advise?

mou




olivier March 30, 2009 16:19

try to update your version of the ggi try svn update. It should work

mou_mi April 1, 2009 12:41

Thank you Olivier. I updated the new version and now it works.

From the forum, if there is rotation periodicity, we can adjust periodic parameters in "boundary" file as for example:

separationOffset (0 0 0);
rotationAxis (1 0 0);
rotationAngle -90;

but for translational periodicity how can I adjust these parameters?

Thank you
mou

mbecker September 17, 2009 15:07

cyclicGGI error with OpenFOAM 1.6 and 1.6.x
 
Hello,

I tried to use cyclicGGI with OpenFOAM 1.6 and a self-compiled 1.6.x from today and got exactly
the same error as mou_mi with his test example.

Running the test example gives me the error as well:

Create time

Create mesh for time = 0

// using new solver syntax:
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}

// using new solver syntax:
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

Reading field p


Cannot find 'value' entry on patch side1 of field p in file "/tmp/cyclic/cyclicGgi/0/p"
which is required to set the values of the generic patch field.
(Actual type cyclicGgi)

Please add the 'value' entry to the write function of the user-defined boundary-condition
or link the boundary-condition into libfoamUtil.so

file: /tmp/cyclic/cyclicGgi/0/p::side1 from line 34 to line 34.

From function genericFvPatchField<Type>::genericFvPatchField(con st fvPatch&, const Field<Type>&, const dictionary&)
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 72.

FOAM exiting


Looks like the bug is not fixed in the recent OpenFOAM release and 1.6.x.
What can I do to make it work?

Martin

olivier September 17, 2009 15:45

Hello Martin,

The GGi interface, as well as cyclicGgi, is a developpement that has been realized in the developpement version of OpenFOAM. It has been developped by Martin Beaudoin och Hrvoje Hjasak.
That is the reason why it doesn't work. The error that you get is just that OpenFOAM is not recognizing the patch type cyclicGgi. If you want to use the Ggi interface, as well as cyclicGgi, you need to use the -dev version. So far, the OpenFOAM-1.6-dev is not out, so the latest version that you can use is OpenFOAM-1.5-dev. If you use it, it will work.

If you have some problems understanding the difference between the 2 versions, you can read this thread:
http://www.cfd-online.com/Forums/ope...x-1-5-dev.html

I hope this answers the question.

Olivier

mauscher December 4, 2009 12:16

uncovered faces
 
Hello,

I'm just writing my thesis and I have a problem with the cyclic ggi boundary. First I want described what I've done and then what the problem is.

1. createPatch -> sidewallright and sidewallleft cyclicGgi
from the boundary-file ->

sidewallleft
{
type cyclicGgi;
nFaces 10176;
startFace 3583008;
shadowPatch sidewallright;
zone zonesidewallleft;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 0.075);
}
sidewallright
{
type cyclicGgi;
nFaces 10176;
startFace 3593184;
shadowPatch sidewallleft;
zone zonesidewallright;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 -0.075);
}

2. faceSet from Patches sidewallright and sidewallleft

3. setsToZones -noFlipMap

4. decomposePar (2 processors)

5. mpirun ....

6. From the log-file->

Evaluation of GGI weighting factors:

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /home/cluster/cmau/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 533
Uncovered faces found. On master: 5088 on slave: 5088
Largest slave weighting factor correction : 0 average: 0
Largest master weighting factor correction: 0 average: 0

The calculation works, but one half of the sidewallpatch is calculated wrong. So where is the problem?


\\mauscher

mbeaudoin December 4, 2009 15:05

Hello,
  • Check the sign of your offset values.
  • Make sure you are running with the latest version available from openfoam-extend. (At least with the svn revision 1505).

Martin

Quote:

Originally Posted by mauscher (Post 238768)
Hello,

I'm just writing my thesis and I have a problem with the cyclic ggi boundary. First I want described what I've done and then what the problem is.

1. createPatch -> sidewallright and sidewallleft cyclicGgi
from the boundary-file ->

sidewallleft
{
type cyclicGgi;
nFaces 10176;
startFace 3583008;
shadowPatch sidewallright;
zone zonesidewallleft;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 0.075);
}
sidewallright
{
type cyclicGgi;
nFaces 10176;
startFace 3593184;
shadowPatch sidewallleft;
zone zonesidewallright;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 -0.075);
}

2. faceSet from Patches sidewallright and sidewallleft

3. setsToZones -noFlipMap

4. decomposePar (2 processors)

5. mpirun ....

6. From the log-file->

Evaluation of GGI weighting factors:

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /home/cluster/cmau/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 533
Uncovered faces found. On master: 5088 on slave: 5088
Largest slave weighting factor correction : 0 average: 0
Largest master weighting factor correction: 0 average: 0

The calculation works, but one half of the sidewallpatch is calculated wrong. So where is the problem?


\\mauscher


AirS December 8, 2009 05:27

Hello,

I'm struggling with directMapped. Below are my 0/U and changeDictionary files:
*************************************
INLET
{
type directMappedFixedValue;
value uniform (1 0 0);
setAverage true;
average (1 0 0);
}
*************************************
*************************************
dictionaryReplacement
{
boundary
{
INLET
{
type directMappedPatch;
offset (0.76 0 0);
sampleRegion region0;
sampleMode nearestCell;
samplePatch none;
}
}
}
*************************************
Then when I run pisoFoam, I've got this message error:

*************************************
Time = 0.0005

Courant Number mean: 0 max: 0.0202144



gradientInternalCoeffs cannot be called for a genericFvPatchField (actual type directMappedFixedValue)
on patch INLET of field U in file "/nbu/eee/soulierr/OpenFOAM/fineTrainLESCyclicDirectMapped/0/U"
You are probably trying to solve for a field with a generic boundary condition.

From function genericFvPatchField<Type>::gradientInternalCoeffs( ) const
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 782.

FOAM exiting
**************************************

I do not know how to sort this issue out ...I had a look at the source code mentionned above but It didn't help me. I hope someone will be able to help me dealing with.
Thank you in advance.

olivier December 8, 2009 06:21

Hello Mauscher,

From the message that you get from the GGI weighting factors, it looks as you have 5088 faces uncovered on your GGI. If you look at the number of cells that you have in your interface, which seems to be 10176, it seems that half your GGI interface is not covered.
I believe that is why you have a problem with your GGI interface. Have look at it, something is not right there.


Olivier

Quote:

Originally Posted by mauscher (Post 238768)
Hello,

I'm just writing my thesis and I have a problem with the cyclic ggi boundary. First I want described what I've done and then what the problem is.

1. createPatch -> sidewallright and sidewallleft cyclicGgi
from the boundary-file ->

sidewallleft
{
type cyclicGgi;
nFaces 10176;
startFace 3583008;
shadowPatch sidewallright;
zone zonesidewallleft;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 0.075);
}
sidewallright
{
type cyclicGgi;
nFaces 10176;
startFace 3593184;
shadowPatch sidewallleft;
zone zonesidewallright;
bridgeOverlap true;
rotationAxis (0 0 1);
rotationAngle 0;
separationOffset (0 0 -0.075);
}

2. faceSet from Patches sidewallright and sidewallleft

3. setsToZones -noFlipMap

4. decomposePar (2 processors)

5. mpirun ....

6. From the log-file->

Evaluation of GGI weighting factors:

From function void GGIInterpolation<MasterPatch, SlavePatch>::rescaleWeightingFactors() const
in file /home/cluster/cmau/OpenFOAM/OpenFOAM-1.5-dev/src/OpenFOAM/lnInclude/GGIInterpolationWeights.C at line 533
Uncovered faces found. On master: 5088 on slave: 5088
Largest slave weighting factor correction : 0 average: 0
Largest master weighting factor correction: 0 average: 0

The calculation works, but one half of the sidewallpatch is calculated wrong. So where is the problem?


\\mauscher


mauscher December 8, 2009 17:43

Hi,

thanks for your help oliver, but I already noticed that. The problem is, if I run the simulation on just one processor all faces are uncovered. If I decompose the case for two processors, as it is mentioned here, one half of the face is uncovered. Thats quite strang. Right now, I try to run the extionsions from sf and hope that the problem will be solved.

\\mauscher

Kr_kim January 4, 2010 19:03

Hi Airs

You need to set type, 'directMapped' instead of directMappedFixedValue.
"directMappedFixedValue" is not correct type following error message.

Hope It be helpful for you

kkr
Quote:

Originally Posted by AirS (Post 239101)
Hello,

I'm struggling with directMapped. Below are my 0/U and changeDictionary files:
*************************************
INLET
{
type directMappedFixedValue;
value uniform (1 0 0);
setAverage true;
average (1 0 0);
}
*************************************
*************************************
dictionaryReplacement
{
boundary
{
INLET
{
type directMappedPatch;
offset (0.76 0 0);
sampleRegion region0;
sampleMode nearestCell;
samplePatch none;
}
}
}
*************************************
Then when I run pisoFoam, I've got this message error:

*************************************
Time = 0.0005

Courant Number mean: 0 max: 0.0202144



gradientInternalCoeffs cannot be called for a genericFvPatchField (actual type directMappedFixedValue)
on patch INLET of field U in file "/nbu/eee/soulierr/OpenFOAM/fineTrainLESCyclicDirectMapped/0/U"
You are probably trying to solve for a field with a generic boundary condition.

From function genericFvPatchField<Type>::gradientInternalCoeffs( ) const
in file fields/fvPatchFields/basic/generic/genericFvPatchField.C at line 782.

FOAM exiting
**************************************

I do not know how to sort this issue out ...I had a look at the source code mentionned above but It didn't help me. I hope someone will be able to help me dealing with.
Thank you in advance.


AirS January 5, 2010 06:14

Thanks Kr_kim,
I changed it like you said. But I had the previous error which deals with an ordering problem :(.
Thanks though.

aqua January 23, 2012 06:13

GGi
 
2 Attachment(s)
Quote:

Originally Posted by mbeaudoin (Post 199903)
Hello Jens,

Please provide your complete test case.

Martin

Hello Martin,
I am trying to perform a simulation about two cars passing by each other. Please find attached picture about the mesh.
so there are two cubes standing for two cars. iblock and oblock, containing the two cars(cubes), will move towards each other. So, interfaces between iblock and oblock is defined as ggi. I used the tutorial turboPassengeRotating. the boundary file is like this:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

14
(
imaxz
{
type patch;
nFaces 400;
startFace 1464469;
}
iminz
{
type patch;
nFaces 400;
startFace 1464869;
}
iminy
{
type patch;
nFaces 400;
startFace 1465269;
}
imaxy
{
type patch;
nFaces 400;
startFace 1465669;
}
interfacei
{
type ggi;
nFaces 400;
startFace 1466069;
rotationAxis (0 0 1);
bridgeOverlap true;
// nCopies 12;
shadowPatch interfaceo;
zone interfacei_faces;
}
imaxx
{
type patch;
nFaces 400;
startFace 1466469;
}
icube_ICUBE
{
type wall;
nFaces 72018;
startFace 1466869;
}
ominy
{
type patch;
nFaces 703;
startFace 1538887;
}
omaxy
{
type patch;
nFaces 400;
startFace 1539590;
}
ominz
{
type patch;
nFaces 400;
startFace 1539990;
}
omaxz
{
type patch;
nFaces 400;
startFace 1540390;
}
interfaceo
{
type ggi;
nFaces 400;
startFace 1540790;
rotationAxis (0 0 1);
bridgeOverlap true;
// nCopies 12;
shadowPatch interfacei;
zone interfaceo_faces;
}
omaxx
{
type patch;
nFaces 400;
startFace 1541190;
}
ocube_ocube
{
type wall;
nFaces 58255;
startFace 1541590;
}
)

Attachment 10945
I run
" setSet -batch setBatch
regionCellSets
setsToZones -noFlipMap" there is no error.
then i run decomposePar, OF didn't abort, but there is some information like “uncovered faces found”.
then i run icoDyMFoam, on Friday, until today(Monday), obviously there are some time steps file created (please see another picture in attachment, and OF is still running).
but when i run paraFoam, there is the error:
Cannot find 'value' entry on patch interfacei of field p in file "/bb/civ/liuyu/OpenFOAM/liuyu-1.6-ext/run/Ggicase1/0/p"
which is required to set the values of the generic patch field.
(Actual type ggi)

Please add the 'value' entry to the write function of the user-defined boundary-condition


file: /bb/civ/liuyu/OpenFOAM/liuyu-1.6-ext/run/Ggicase1/0/p::boundaryField::interfacei from line 66 to line 66.

From function genericFvPatchField<Type>::genericFvPatchField(con st fvPatch&, const Field<Type>&, const dictionary&)
in file genericFvPatchField/genericFvPatchField.C at line 71.

FOAM exiting

could you please, help me on this? Thank you so much!!!!!

olivier January 23, 2012 07:15

Hi aqua,

What version of OpenFOAM are you using when you open paraFoam? To me it seems that you are using a none-extended version, which is why it is unable to recognize the patch name.

aqua January 23, 2012 09:31

Quote:

Originally Posted by olivier (Post 340614)
Hi aqua,

What version of OpenFOAM are you using when you open paraFoam? To me it seems that you are using a none-extended version, which is why it is unable to recognize the patch name.

hi, Olivier,
Thank you so much for your reply!
I do use OF1.6ext...

Please help me out..

Aqua

aqua January 30, 2012 06:34

Quote:

Originally Posted by jens_klostermann (Post 199898)
Hi Francesco,

yes!
I just read something that only works for planar faces and I figured out that it is possible to give OpenFoam-1.5 the choice whether the cyclic is rotational, translational or unknown in the boundary file. Now I have to figure out to use it the right way!

Jens

Hello Jens,
Did you figure out how to tell cyclic to rotate or translate? Could you please share the method?
Thank you so much!

e.ahmadiyan April 21, 2013 10:26

Hi dear friends
I am using of openFoam2.0.1
My geometry and createPatchDict file are as below:
http://www.cfd-online.com/Forums/att...screenshot.jpg
createPatchDict.zip

When running the case this error reported:

This probably means your geometry is not consistent with the specified separation and might lead to problems.
Continuing with specified separation vector (0.0002 0 0.0002)
patch:outlet1 neighbour:inlet1
--> FOAM Warning :
From function cyclicPolyPatch::calcTransforms()
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 368



In your mind are there any incorrect setting in createPatchDict file proportional to geometry?
What are separationVector and rotationAxis and rotationCentre ? please demonstrate for me. In fact I do not know how I should adjust this parameters in createPatchDict file proportional to my geometry.

All my case is as below
cyclic.zip

Thanks

e.ahmadiyan May 3, 2013 02:22

Hi dear foamers
I am working with OF2.0.1 .My geometry and createPatchDict file are as below:
http://www.cfd-online.com/Forums/att...screenshot.jpg
createPatchDict.zip

When running the case this error reported:

This probably means your geometry is not consistent with the specified separation and might lead to problems.
Continuing with specified separation vector (0.0002 0 0.0002)
patch:outlet1 neighbour:inlet1
--> FOAM Warning :
From function cyclicPolyPatch::calcTransforms()
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 368



In your mind are there any incorrect setting in createPatchDict file proportional to geometry?
What are separationVector and rotationAxis and rotationCentre ? please demonstrate for me. In fact I do not know how I should adjust this parameters in createPatchDict file proportional to my geometry.

All my case is as below
cyclic.zip

Please help me
Thanks

e.ahmadiyan May 3, 2013 02:25

Hi dear foamers


Please help me
Thanks

e.ahmadiyan May 3, 2013 02:45

11111111111111111111111111111111111111111111111111 1111111111111


All times are GMT -4. The time now is 01:26.