Skip to content

URIS_displacement appears incorrect #461

@aabrown100-git

Description

@aabrown100-git

Description

When running an FSI simulation with URIS valves, the output array URIS_displacement in result_uris_<valve_name>_xxx.vtu seems incorrect. When I visualize the in Paraview by warping by URIS_displacement, the valve motion does not follow the fluid mesh motion.

I encountered this when running a pretty complex left heart FSI simulation with valves. Here is the valve position when warping by URIS_displacement (the timestep is in the middle of the simulation when the fluid mesh has deformed significantly)

Image

And here it is when warping by the fluid mesh displacement sampled onto the valve

Image

In both pictures, the elements around the leaflets indicate where the valve resistance is being applied, as measured by the signed distance field (SDF). Apparently, the SDF field is correct, which is what really matters. So this seems to only be an outputting bug; the actual simulation results (i.e. fluid velocity, mesh displacement, etc.) are probably fine.

Reproduction

Run an FSI simulation with RIS valves. The simulation should be designed so that the fluid mesh moves significantly over the course of the simulation.

I want to provide a minimal example, but don't have the bandwidth right now.

Expected behavior

The array URIS_displacement should be computed correctly so that when warping the valve surfaces by URIS_displacement, they follow the fluid mesh as it deforms over the course of the simulation.

Alternatively, we can just remove URIS_displacement as an output array. It's very easy to compute the valve surface motion as a post processing step, using Paraview or PyVista. As far as I can tell, the valve surface displacement is only computed to be output as URIS_displacement. It isn't used anywhere else in the URIS code and doesn't affect the solution. Removing this would also allow us to eliminate several rather complicated function (uris_update_disp, uris_find_tetra).

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions