Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Ishaan Desai
    @IshaanDesai
    :smile: :+1:
    Prasad ADHAV
    @Alphaoo1
    Anyways, thanks again.
    Wouldn't be a normal Monday if something didn't go wrong. :P
    Ishaan Desai
    @IshaanDesai
    No problem :)
    rachaelesmith
    @rachaelesmith
    Hi, is petrbf mapping still in use in precice v2.2.0? I tested my installation and the precice.mapping.petrbf test passed, but I can't seem to use it:
    ---[precice] ^[[31mERROR: ^[[0m The configuration contains an unknown tag <mapping:petrbf-thin-plate-splines>.
    David Schneider
    @DavidSCN
    Yes, still in use, but the configuration option has been merged together with the (former only serial) rbf mapping option. So, you can just use rbf without the 'pet'
    Gerasimos Chourdakis
    @MakisH
    @rachaelesmith where did you find a mention to petrbf? As David wrote, this is specific to preCICE v1.x, we changed this option when we moved to v2.0: https://precice.org/couple-your-code-porting-adapters.html
    huyfanne
    @huyfanne
    Hi Everybody, I got a general question: Can RBF mapping be used for 3D FSI cases? I tried to set up a 3D case from 2D perpendicular column tutorial but got error with investable matrix. Can someone elaborate on this. Thanks a lot.
    The error message: The interpolation matrix of the RBF mapping from mesh Fluid-Mesh-Faces to mesh Solid is not invertable. This means that the mapping problem is not well-posed. Please check if your coupling meshes are correct. Maybe you need to fix axis-aligned mapping setups by marking perpendicular axes as dead? But for 3D case, we do not need to limit any particular axis right?
    David Schneider
    @DavidSCN
    @huyfanne general answer: yes. However, the mapping might be not-invertible in case you don't provide information in specific space directions, i.e. all vertices are located in an axis-aligned plane. Do you use OpenFOAM here? In this case, you can (1) constraint the respective out-of-plane axis by selecting z-axis-dead=true (depending on your axis, but the tutorial cases are all in the xy-plane) in the mapping configuration or (2) increase the number of cells in the out-of-plane direction to be greater one
    rachaelesmith
    @rachaelesmith
    Hi, does anyone have any advice on how to reduce the memory usage of an OpenFOAM-CalculiX FSI simulation using rbf mapping? I have tried using rbf-gaussian and rbf-compact-tps-c2 but my simulation keeps terminating on the CalculiX side:
    [0]PETSC ERROR: ------------------------------------------------------------------------
    [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range
    [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger
    [0]PETSC ERROR: or see https://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind
    [0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors
    [0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run
    [0]PETSC ERROR: to get more information on the crash.

    [0]PETSC ERROR: User provided function() line 0 in unknown file

    I have also tried using nearest-neighbor mapping but the simulation seems to go unstable and stops after a few iterations:
    Gerasimos Chourdakis
    @MakisH

    @rachaelesmith you can set a support-radius="{float}" in your mapping, to consider only a smaller part of the mesh: https://precice.org/configuration-xml-reference.html#mappingrbf-thin-plate-splines

    Other than that, note that the CalculiX adapter has a long-standing memory leak issue, which may become prominent in larger cases: precice/calculix-adapter#10

    rachaelesmith
    @rachaelesmith
    @MakisH Thanks, I have tried adjusting the support radius (or shape parameter in the gaussian method) but haven't had any luck. The calculix mesh has a little over 100,000 nodes.
    I will try again with the nearest neighbor method for now, and try to find out why the simulation keeps blowing up after a few iterations on the calculix side
    Gerasimos Chourdakis
    @MakisH

    @rachaelesmith if the issue I posted is really what affects you, then please comment there and we should try to fix this. The problem is that currently nobody is actively working on the CalculiX adapter, so maybe we would need a test case which we could then use in a few team debugging sessions.

    Since this is yet another issue you have with CalculiX, moving to deal.II is also always an option. :-) But maybe this helps us learn a bit more about CalculiX as well.

    Benjamin Uekermann
    @uekerman
    @rachaelesmith I don't think that this is due to the known memory leak in the CalculiX adapter. I suspect the mapping problem here to be the bad guy. Does NN converge?
    I would recommend to use compact tps basis functions over Gaussians.
    https://precice.org/configuration-xml-reference.html#mappingrbf-compact-tps-c2
    Here, you can directly specify the support radius. Use sth like 5 times your input mesh width.
    In case this does not work, please provide your preCICE vtk output and your preCICE config. Then, we could check which mapping problems we expect.
    rachaelesmith
    @rachaelesmith
    @uekerman no, NN diverges and I end up with huge values for the force and displacement after a few iterations. VTK and config files are as follows:
    Benjamin Uekermann
    @uekerman
    If NN diverges as well, then it's no "bad condition RBF" problem. Could you please upload your iterations and your convergence file? https://precice.org/fundamentals-output-files.html
    rachaelesmith
    @rachaelesmith
    @uekerman the iteration files are empty, but here is the convergence file and the log files
    rachaelesmith
    @rachaelesmith
    The VTK files are too large to send here, I have put them in a google drive which I could send a link to?
    Gerasimos Chourdakis
    @MakisH
    yes, this also works :-)
    Pranjan2
    @Pranjan2
    Hello !
    I am trying to build and install preCICE v2.2.1 on a cluster. I have tried multiple versions of boost and preCICE and I keep getting the following error : usr/bin/ld: CMakeFiles/testprecice.dir/src/testing/main.cpp.o: in function init_unit_test()': main.cpp:(.text+0x773): undefined reference toboost::unit_test::runtime_config::btrt_log_level[abi:cxx11]'"
    I have also checked my gcc version and verified that boost is compiled with the same version
    Any help will be appreciated!
    Pranjan2
    @Pranjan2
    This is only a snapshot of the error. It seems like Cmake is unable to find boost libraries forlog,thread,system,filesystem,program_options,test
    However, during Cmake, these libraries are located when Cmake looks for Boost.
    Oguz Ziya Koseomur
    @oguzziya
    Hi Pranjan, looks like it is a linking error. I am not sure how your cluster handles the packages but I think you might need to include lib folder of Boost in your LD_LIBRARY_PATH
    Benjamin Uekermann
    @uekerman

    @rachaelesmith Let's try to tweak the IQN configuration a bit:

          <acceleration:IQN-ILS>
            <data name="Displacement" mesh="Solid-Mesh" />
            <data name="Force" mesh="Solid-Mesh" />
            <preconditioner type="residual-sum" />
            <filter type="QR1" limit="1e-5" />
            <initial-relaxation value="0.1" />
            <max-used-iterations value="100" />
            <time-windows-reused value="20" />
          </acceleration:IQN-ILS>
    • Try changing initial-relaxationto "0.5"
    • Try changing the QR1 limit to 1e-3

    I have no looked at the meshes yet. Will do asap.

    Benjamin Uekermann
    @uekerman
    Maybe a stupid question: why do you need such a fine solid mesh? The coupling would probably get more stable if you use a coarser solid mesh (the fluid mesh can still be very fine).
    Mapping support radius looks good.
    helios
    @helios70433306_twitter

    Hi guys. I tried looking at tutorials, documentation and i have not found a similar case. So maybe you can help me.
    I'm doing a CHT sim using rhoPimpleFoam and laplacianFoam. I have multiple solid regions that have different thermal conductivity. Is this possible without modifying the code?

    Thanks.

    David Schneider
    @DavidSCN
    @helios70433306_twitter
    Are the solid regions still one body? Or do you have the option to split the mesh and different participants on different regions?
    helios
    @helios70433306_twitter
    They are disconnected.
    @DavidSCN , the solid bodies are of different material.
    David Schneider
    @DavidSCN
    Then you can just define one participant per region/material, an example configuration is given by the multiple perpendicular flaps tutorial
    helios
    @helios70433306_twitter
    Oh, great. I only looked at CHT cases.
    @DavidSCN , thanks a lot.
    Pranjan2
    @Pranjan2
    Thank you @oguzziya ! That helped and I have preCICE installed now.

    Another question. I am using SU2 with CalculiX. I am trying to restart the FSI simulation by using the deformed solid mesh and deformed fluid mesh with the fluid state at the restart iteration. However, I am unable to regain the correct solution upon restart. I also tried the initializeData()option but I get the following error :
    '''
    ---[precice] ^[[31mERROR: ^[[0m initializeData() needs to be called before advance if data has to be initialized.
    '''
    My precice-config file has the line :

    '''<exchange data="DisplacementDeltas0" mesh="Calculix_Mesh" from="Calculix" to="SU2_CFD" initialize="yes" />'''

    Thank you in advance!

    Kyle Davis
    @KyleDavisSA
    Does this error occur in the Calculix or SU2 log? This does not look like a config file error but something in the adapter itself
    Hisham
    @HishamSaeed

    Hi guys, i am using preCICE with FORTRAN and i am trying to initialize data before time loop but it keeps crashing, can anybody tell me how to initialize data in FORTRAN , my code looks like this CALL ```precicef_create(participantName, configPath, rank, commsize)

        writeInitialData(1:50)='                                                  '
        readItCheckp(1:50)='                                                  '
        writeItCheckp(1:50)='                                                  '
    
        CALL precicef_get_dims(dimensions)
        CALL precicef_get_mesh_id(meshName, meshID)
        CALL precicef_set_vertices(meshID, vertexSize, CoordVals, vertexIDs)
    
        CALL precicef_get_data_id(readDataName,meshID,readDataID)
        CALL precicef_get_data_id(writeDataName,meshID,writeDataID)
    
        ALLOCATE(readData(VertexSize))
        ALLOCATE(writeData(VertexSize))
    
        readData = 0
        writeData = 0
    
        CALL precicef_initialize(dt)
        CALL precicef_is_action_required(writeInitialData, bool)
    
        IF (bool.EQ.1) THEN
            CALL Info('CouplerSolver','Writing Initial Data')
            CALL precicef_write_bsdata(readDataID, vertexSize, vertexIDs, readDataVariable % Values(readDataVariable % Perm(i)))
            CALL precicef_mark_action_fulfilled(writeInitialData)
        ENDIF
    
        CALL precicef_initialize_data()
    
        CALL precicef_is_coupling_ongoing(ongoing)``` ,

    i am trying to write like dummy solver, but when i run the solver it gives me an error
    Initial data has to be written to preCICE by calling an appropriate write...Data() function before calling initializeData(). Did you forget to call markActionFulfilled(precice::constants::actionWriteInitialData()) after writing initial data?

    Do not get confused by what is written in write_bsdata, i am just trying to get initial values from solver
    Ishaan Desai
    @IshaanDesai
    Hi @HishamSaeed are you sure that the condition bool.EQ.1 is True and that the command inside of the if.. loop are actually executed?
    Benjamin Uekermann
    @uekerman
    @HishamSaeed Seems you forgot to call
    CALL precicef_action_write_initial_data(writeInitialData)
    Hisham
    @HishamSaeed
    @IshaanDesai No it is not true, but i tried to remove it, other problems occur, the problem is that the 2 solvers the first and second participant use the same code and i am having serial coupling , so only the second participant should use this part of this code, i though calling is action required should detect that while i am setting initialize="yes" in config file
    Pranjan2
    @Pranjan2
    @KyleDavisSA This error is from the SU2 log.