CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Community Contributions (https://www.cfd-online.com/Forums/openfoam-community-contributions/)
-   -   [waves2Foam] Trying to simulate a case which a breakwater is inserted into the waveFlume (https://www.cfd-online.com/Forums/openfoam-community-contributions/210791-trying-simulate-case-breakwater-inserted-into-waveflume.html)

Nick_civ February 22, 2014 06:40

Trying to simulate a case which a breakwater is inserted into the waveFlume
 
1 Attachment(s)
P { margin-bottom: 0.08in; } Hi Neils,

I am trying to simulate a case in which an object (e.g. breakwater) is inserted into the waveFlume just before the relaxation zone. I created an STL file and i executed
1. blockMesh
2. Snappyhexmesh - overwrite
3. Create the new boundary in 0 dir
3. Extrudemesh
4. Delete some files from Polymesh
5. waveGaugesNProbes
6. setWaveField
but when i run it, it doesn't work - here s the output

No finite volume options present

time step continuity errors : sum local = 0, global = 0, cumulative = 0
GAMG: Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
GAMG: Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 0, global = 0, cumulative = 0
Courant Number mean: 0 max: 0

Starting time loop

Courant Number mean: 0 max: 0
Interface Courant Number mean: 0 max: 0
deltaT = 0.0011976
Time = 0.0011976

MULES: Solving for alpha1
Phase-1 volume fraction = 0.217392 Min(alpha1) = 0 Max(alpha1) = 1
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::relaxationSchemes::relaxationSchemeSpatial:: correct() in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/lib/libwaves2Foam.so"
#4 Foam::relaxationZone::correct() in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/lib/libwaves2Foam.so"
#5
in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/bin/waveFoam"
#6 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#7
in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/bin/waveFoam"
Floating point exception (core dumped)

I attached the case and i would be grateful if you took a look. (I didn't attach Postprocessed2foam, surfaceElevationAnyname and wavegaugesnprobes. Also, 0 directory's files include the new boundary condition of breakwater and they are just before running and the stl file in the triface is txt due to upload limit here)

Thank you in advance.
Nick

ngj February 22, 2014 07:48

Hi Nick,

There seems to be a problem with the relaxation zone, please do verify that it is correctly specified. You could e.g. use the relaxationZoneLayout utility to do that.

Kind regards,

Niels

Nick_civ February 22, 2014 12:39

1 Attachment(s)
Hi Niels ,

Thank you for your instant reply. The problem was the orientation of the relaxation zone. I corrected and it started to run but it stopped after a few seconds printing the following message :


#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigSegv::sigHandler(int) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2 in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::sampledSurfaceElevation::sampleIntegrateAndW rite(Foam::sampledSurfaceElevation::fieldGroup<dou ble>&) in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/lib/libwaves2FoamSampling.so"
#4 Foam::OutputFilterFunctionObject<Foam::sampledSurf aceElevation>::execute(bool) in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/lib/libwaves2FoamSampling.so"
#5 Foam::functionObjectList::execute(bool) in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6 Foam::Time::run() const in "/opt/openfoam222/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#7
in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/bin/waveFoam"
#8 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#9
in "/home/nikos/OpenFOAM/nikos-2.2.2/platforms/linux64GccDPOpt/bin/waveFoam"

It seems to be something about Surface Elevation and i am trying to figure out what 's going on. I used as a basis the waveFlume. Is the stl object which causes the failure? i tried to reduce the number of gauges but it didn't work. Could you help me?

Thank you in advance.
Nick

ngj February 23, 2014 03:08

Hi Nick,

I tried it on my OF2.2.0 installation (do not have OF2.2.2), and everything was running correctly.

The only thing I can think of (if you have not modified the case, since it was uploaded) is some cross-version compatibility issue. I would be glad, if you can track down the issue.

Kind regards,

Niels

Nick_civ February 23, 2014 10:50

Hi Niels,

It was a cross-version compatibility issue indeed which has to do with SurfaceElevation and WaveGaugesNProbes. I think the problem stems from these lines in the surfaceElevation.C code :

#if OFVERSION<220
fileName dict("surfaceElevationDict");
#else
fileName dict("system/surfaceElevationDict");
#endif.

I managed to run the case in 2 different ways :

1. I deleted the last four lines from system/controlDict file
functions
{
#includeIfPresent "../waveGaugesNProbes/surfaceElevationAnyName_controlDict";
}
(running without surfaceElevation)

2. After typing waveGaugesNProbes in the terminal and before setwavefields, I copied the directory waveGaugesNProbes (which was created) inside the system directory in order for controlDict to read the appropriate file. (changing #includeIfPresent "../waveGaugesNProbes/surfaceElevationAnyName_controlDict"; to "../surfaceElevationAnyName_controlDict")

But the surfaceElevation and Postprocesswaves2foam apps don't work and i 'll try to figure out how to modify the codes in order to put the files into appropriate directories.

I think that this issue concerns all after-Openfoam 2.2.0 users and I would appreciate it if you guided me how to have these useful tools at my disposal.

Thank you for your help.

Kind regards,
Nick

ngj February 23, 2014 14:27

Hi Nick,

This sounds really strange. I am going to have a busy week, so I do not know, whether I will have a chance to look into it; especially because I need also to get a 2.2.2 running.

Also, the point you are referring to with the pre-processing statements might not be the reason, as I could get things running in 2.2.0, and the statement refers the versions prior to 2.2.0.

What do you mean with postProcessWaves2Foam does not work?

Kind regards,

Niels

ngj February 23, 2014 15:23

Hi Nick,

Also, I just ran your test in OF2.2.1, and I do not experience any problems what so ever. I can sample in run-Time and postProcessWaves2Foam executes without any problems.

Kind regards,

Niels

P.S. It should be said that I am executing the test without the breakwater, i.e. the simple blockMesh-mesh.

Nick_civ February 23, 2014 17:38

2 Attachment(s)
Hi Niels,

I ran the case without copying the waveGaugesNProbes Directory into system directory as I mentioned above but modifying #includeIfPresent "../waveGaugesNProbes/surfaceElevationAnyName_ controlDict"; to #includeIfPresent "../surfaceElevationAnyName_ controlDict";.

I used snappyhexmesh and extrudemesh for the breakwater. I also ran tests with sloped seabed using snappyhexmesh again inside and outside the relaxation zone. All cases ran successfully with the above modification but when i execute postProcessedWaves2Foam i receive the attached output.

Kind regards,
Nick

ngj February 24, 2014 11:19

Hi Nick,

Problem with surfaceElevation is that it cannot find the correct dictionary in <root>/system. You need to "create" that dictionary prior to executing surfaceElevation, but it is actually already in your waveGuagesNProbes directory.

Furthermore, the problem with postProcessWaves2Foam is (probably) that the inputDir that you are pointing to does not exist. It is on my to-do list to actually throw an error message, if the file you are supposed to read does not exist.

Kind regards,

Niels

Nick_civ February 25, 2014 03:37

Hi Niels,

First of all, I found out that the problem with waveFoam running was due to extrudeMesh because the gauges' z coordinates were out of the new Mesh. I changed their values according to the after-extrudeMesh z coordinate and all cases ran succesfully without having to change anything from what i mentioned above ( namely, #includeIfPresent "../waveGaugesNProbes/surfaceElevationAnyName_controlDict"; to "../surfaceElevationAnyName_controlDict") which means that everything runs properly in Openfoam 2.2.2.

Secondly, I follow your instructions for surfaceElevation and postProcessedWaves 2Foam and i executed both correctly.

Lastly, I have pinpointed one mistake with pressure values as you can see in paraview. It depicts the p_rgs as if it is the alpha 1 and pressure values are too high. Is it because of my sealevel setting(10.40) and how can I get the right values?

Thank you very much for your guidance. It was very helpful and i have already run several cases.


Kind regards,
Nick


All times are GMT -4. The time now is 16:50.