Skip to content

Rookie

Due to recent bot attacks we have changed the sign-up process. If you want to participate in our forum please send a message via our contact form.

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 43 total)
  • Author
    Posts
  • in reply to: VTK Repeat Write #8165
    Rookie
    Participant

    I would like to express my gratitude to you and your team once again. Thank you for your previous assistance. OpenLB is indeed a fantastic software. I initially tried Palabos, but the active forum and better alignment with my research led me to choose OpenLB. I apologize for taking up your time with some simple questions (which I couldn’t figure out even after some thought).

    in reply to: VTK Repeat Write #8162
    Rookie
    Participant

    I really don’t have much knowledge about parallel processing, and I apologize for any confusion I may have caused you. The screenshot I provided earlier was from running the original channel3d program without parallel compilation but using mpirun to execute it. What I want to convey is that the large file size in the 0th step, which cannot be opened in ParaView, is due to repeated information writing, while other files can be opened normally.

    I have incorporated subgrid particles into the channel3d file, and I have achieved some of the functionalities I wanted. The periodicity is implemented using this document: olb-1.6r0/src/particles/subgrid3DLegacyFramework/boundaries/periodicBoundary3D.h. I made some modifications to the original files, but these should not be the cause of the repeated writing issue. The repeated writing issue occurred only after I added some additional output. Could it be due to limitations in my computer configuration?

    SuperVTMwriter3D<T> vtmWriter(“channel3d”);
    SuperVTMwriter3D<T> vtmWriterStartTime(“startingTimechannel3d”);
    SuperLatticeGeometry3D<T, DESCRIPTOR> geometry(sLattice, superGeometry);
    SuperLatticePhysVelocity3D<T, DESCRIPTOR> velocity(sLattice, converter);
    SuperLatticePhysPressure3D<T, DESCRIPTOR> pressure(sLattice, converter);
    SuperLatticePhysStrainRateFD3D<T, DESCRIPTOR> strainrate(superGeometry, sLattice, materialslist, converter);
    SuperLatticePhysDissipationFD3D<T, DESCRIPTOR> dissipation(superGeometry, sLattice, materialslist, converter);
    SuperLatticePhysEffectiveDissipationFD3D<T, DESCRIPTOR> effdissipation(superGeometry, sLattice, materialslist, converter, [&](Cell<T,DESCRIPTOR>& cell) -> double {
    return BulkDynamics::CollisionO().computeEffectiveOmega(cell, bulkDynamicsParams);
    });
    SuperLatticePhysVorticityFD3D<T,DESCRIPTOR> vorticity(superGeometry, sLattice, materialslist, converter);
    SuperLatticePhysStressFD3D<T,DESCRIPTOR> stress(superGeometry, sLattice, materialslist, converter);
    SuperIsotropicHomogeneousTKE3D<T,DESCRIPTOR> TKE(sLattice, converter);
    SuperLatticePhysEnstrophyFD3D<T,DESCRIPTOR> enstrophy(superGeometry, sLattice, materialslist, converter);
    vtmWriter.addFunctor(geometry);
    vtmWriter.addFunctor(velocity);
    vtmWriter.addFunctor(pressure);
    vtmWriter.addFunctor(sAveragedVel);
    vtmWriter.addFunctor(sAveragedPre);
    vtmWriter.addFunctor(sAveragedVelcc);
    vtmWriter.addFunctor(wss);
    vtmWriter.addFunctor(sAveragedWss);
    vtmWriter.addFunctor(strainrate);
    vtmWriter.addFunctor(dissipation);
    vtmWriter.addFunctor(effdissipation);
    vtmWriter.addFunctor(vorticity);
    vtmWriter.addFunctor(stress);
    vtmWriter.addFunctor(TKE);
    vtmWriter.addFunctor(enstrophy);
    vtmWriter.addFunctor(sAveragedVor);

    vtmWriterStartTime.addFunctor(velocity);
    vtmWriterStartTime.addFunctor(pressure);

    in reply to: VTK Repeat Write #8160
    Rookie
    Participant

    The screenshot I shared above is the output after I made some modifications. The following screenshot shows the output results of the original 1.5 version file, and in the zeroth step, it repeated the information.
    https://postimg.cc/gallery/9TbmvYm

    I added some physical quantity outputs. I believe this should not be the cause of the problem. I understand that you suggested opening MPI:
    CXX :=mpic++
    PARALLEL_MODE := MPI

    Indeed, this allows for the correct output of VTI files. However, I need to implement periodic boundaries for particles, I can only run it with MPI turned off. Therefore, I disabled MPI, but still used “mpirun -np 8 ./channel3d” to run the program. What puzzles me is why some VTI files can be correctly output in the same program, while others show duplication.Is there any relevant setting to prevent the VTI file from repeatedly writing information after the first write?

    I didn’t understand your point about completely deleting the directory. I did rename the output folder, and when outputting, two folders appear—one named “tmp” and the other with the name I specified. Is there an issue with this, and should I make changes here?

    in reply to: VTK Repeat Write #8152
    Rookie
    Participant

    Dear Adrian,

    I found the case I ran before in version 1.5. At that time, I didn’t set MPI and I noticed that only the VTI file output in the 0th step was repeated 8 times, while others were normal. After modifying the files, the issue of duplicated output occurred not only in the 0th step. You can identify which ones are duplicated by observing the file sizes, and files exceeding 100MB are all duplicated. I still don’t know how to solve this problem. Then I found that this line of code is related to the setting of duplicated output:

    // display messages from every single mpi process
    // clout.setMultiOutput(false);

    However, if this line of code is not enabled, doesn’t it mean that the output occurs only once in total for multithreading? I conducted tests on another computer, and the same issue occurred.

    https://i.postimg.cc/F1t0Pq5p/repeat.png

    Best regards,
    Rookie

    in reply to: VTK Repeat Write #8149
    Rookie
    Participant

    Dear Adrian,

    I didn’t activate MPI following the User Guide, because in a previous instance, I downloaded OpenLB-1.6 and was able to open VTK files without setting anything. Even without activating MPI, I observed 8 outputs in the terminal. After activating MPI, the terminal output occurred only once, and VTK files could be opened successfully. However, I would like to know how to ensure the correctness of my VTK files without activating MPI. Is it possible to achieve this?

    Furthermore, I’ve observed that at times, among all the output files, one or several files can be opened successfully. In contrast, the files that cannot be opened exhibit duplicated outputs, and the repetition in these cases ranges from eight times to less than eight times. This also results in the files becoming very large

    Best regards,
    Rookie

    in reply to: porousPlate2d #8095
    Rookie
    Participant

    Dear Adrian

    It’s not terminated, it’s when I turn off parallelism that I get these problems, it outputs the image from step 0 and the simulation doesn’t move, it doesn’t break. Normally gnuplot itself doesn’t have problems due to serial mode. I guess it could be because of this gnuplot problem or the simulation slows down when parallelism is turned off. It could be that gnuplot is not suitable for non-parallel use in this code?

    Best Regards,
    Rookie

    in reply to: porousPlate2d #8081
    Rookie
    Participant

    Dear Adrian

    Yes, it outputs the image from step 0, and also as you said, this prevents the simulation from continuing. I just want to experiment more with what the code does, so I’d better remove that part of the code then.

    Best Regards,
    Rookie

    in reply to: porousPlate2d #8079
    Rookie
    Participant

    Dear Max

    I’m having a similar problem, after I add these lines to my code:
    vtmWriterStartTime.write(iT);
    SuperEuklidNorm3D<T> normVel(velocity);
    BlockReduction3D2D<T> planeReduction(normVel, {0, -1, 0}, 600, BlockDataSyncMode::ReduceOnly);
    // write output as JPEG
    heatmap::write(planeReduction, iT);

    // write output as JPEG and changing properties
    heatmap::plotParam<T> jpeg_Param;
    jpeg_Param.name = “velocity”;
    jpeg_Param.contourlevel = 5;
    jpeg_Param.colour = “blackbody”;
    jpeg_Param.zoomOrigin = {0., 0.};
    jpeg_Param.zoomExtend = {1., 1.};
    heatmap::write(planeReduction, iT, jpeg_Param);

    if I run it in parallel it runs fine, but if I don’t I get this error:
    “./channel/imageData/data/_EuklidNormphysVelocityiT0000000.p” line 21: Matrix does not represent a grid
    “./channel/imageData/data/_velocityiT0000000.p” line 27: Natrix does not represent a grid

    But the picture for this step is actually output.Is it that the code can only run in parallel?

    Best Regards,
    Rookie

    in reply to: simulateWithTwoWayCoupling #8020
    Rookie
    Participant

    Dear Jan,

    Thank you for the suggestion, I have downloaded this paper before, I will read this paper and other papers published by Henn, the problem I am currently experiencing is that the fluid and particles cannot be simulated at the same time, the original code simulates the fluid first and then the particles. After modifying it to reach the time step where I add the particles it reports an error. I would love to attend spring school to solve my problem, but please forgive me for not being able to attend.

    terminate called after throwing an instance of ‘std::domain_error’
    what(): read only access to data which is not available locally
    [banana:883562] *** Process received signal ***
    [banana:883562] Signal: Aborted (6)
    [banana:883562] Signal code: (-6)

    ————————————————————————–
    Primary job terminated normally, but 1 process returned
    a non-zero exit code. Per user-direction, the job has been aborted.
    ————————————————————————–
    ————————————————————————–
    mpirun noticed that process rank 1 with PID 0 on node banana exited on signal 6 (Aborted).
    ————————————————————————–

    Best regards,
    Rookie

    in reply to: simulateWithTwoWayCoupling #8016
    Rookie
    Participant

    Dear Jan,

    I’m sorry to bother you again, can you point me to the literature on these two couplings, I’m trying to understand these based on the literature and the code.

    simulateWithTwoWayCoupling_Mathias
    simulateWithTwoWayCoupling_Davide

    Best regards,
    Rookie

    Rookie
    Participant

    Dear jan,

    Is the method you are talking about using c++ to read the files directly and post-processing, I have tried using Python to process the vtk files before. But I wanted to do more data processing then I chose Paraview to process the data. In parallel fluid is integrating vti file to vtm file and particle is integrating vtu file to pvd file, I was able to make it work after changing the filename issue in the pvd file based on the reported error. Thanks anyway for your continued help.

    file=”data/particles_iT1467675iC00007.vtu”/> change into file=”particles_iT1467675iC00007.vtu”/>

    Best regards,
    Rookie

    Rookie
    Participant

    I know why this problem occurs, I have to load all the vtu files in this timestep one by one and can’t just load the folder, is there any other way to solve it.

    Rookie
    Participant

    Dear jan,

    I’m happy to report that I implemented periodic boundaries for the particles. But I’ve run into another problem which I guess could be the parallel setting. With the old particle system, if I set it to parallel, the fluid would simulate correctly, while the particles would not be generated correctly at the inlet, and in the picture is the difference between whether I use parallel or not. With parallel turned on the particles are only generated and moving in one of the blocks, even with new particle system the particles are only generated in the first block in the bottom right corner.

    https://postimg.cc/gallery/vsjHcY9

    I switch to the code below in parallel:

    CXX := mpic++
    PARALLEL_MODE := MPI

    Best regards,
    Rookie

    Rookie
    Participant

    Dear jan,

    It is true that this 2 refers to the material, since I chose the channel flow, I assume that setting 1 or 2 will give the same value. There are also some problems in my compiled code. There is no movement of particles after they are generated at the entrance. I guess it may be caused by too many settings I changed at one time.I am using stokes drag and periodic boundaries first to verify that periodicity is correct.

    Best regards,
    Rookie

    Rookie
    Participant

    Dear jan,

    Are you talking about the selection of materials in compilable code? The periodic boundary does not select materials, because I see in the source code he is judged according to geometry, and the material has nothing to do with it. I set up the particles to bounce with the wall, where I set up material 2.

    T dT = converter.getConversionFactorTime();
    std::set<int> reflBMat = {2};
    auto materialreflectBoundary = std::make_shared<SimpleReflectBoundary3D<T, PARTICLE>>(dT, superGeometry, reflBMat);
    supParticleSystem.addBoundary(materialreflectBoundary);

    auto materialperiodicBoundary = std::make_shared
    < PeriodicBoundary3D<T, PARTICLE>
    > (superGeometry, true, true, false);
    supParticleSystem.addBoundary(materialperiodicBoundary);

    My fluid is periodic in both the x and y directions, are you worried that my fluid is not periodic? Because the results haven’t come yet, and I’ll be the first to let you know if I succeed.

    Best regards,
    Rookie

Viewing 15 posts - 16 through 30 (of 43 total)