From 02f32d59a705fedf2c186e06b78f402f3e5557d7 Mon Sep 17 00:00:00 2001 From: hanzhao2020 Date: Tue, 17 Feb 2026 16:07:01 -0800 Subject: [PATCH 1/5] Updating unfitted RIS valve CFD and FSI test cases --- .../mesh-complete.mesh.vtu | 3 - .../mesh-surfaces/noname_1.vtp | 3 - .../mesh-surfaces/noname_2.vtp | 3 - .../mesh-surfaces/noname_3.vtp | 3 - .../mesh-complete/1_displacement.dat | 3 - .../mesh-complete/2_displacement.dat | 3 - .../mesh-complete/3_displacement.dat | 3 - tests/cases/uris/pipe_uris_3d/result_005.vtu | 3 - tests/cases/uris/pipe_uris_3d/solver.xml | 196 --------------- .../{pipe_uris_3d => pipe_uris_cfd}/README.md | 3 +- .../cases/uris/pipe_uris_cfd/lumen_inlet.flow | 34 +++ .../meshes/PAT003_07_LCC_morphed+25.vtu | 0 .../PAT003_07_LCC_morphed+25motion_close.dat | 0 .../PAT003_07_LCC_morphed+25motion_open.dat | 0 .../meshes/PAT003_07_LCC_morphed-25.vtu | 0 .../PAT003_07_LCC_morphed-25motion_close.dat | 0 .../PAT003_07_LCC_morphed-25motion_open.dat | 0 .../meshes/PAT003_07_NCC_morphed+25.vtu | 0 .../PAT003_07_NCC_morphed+25motion_close.dat | 0 .../PAT003_07_NCC_morphed+25motion_open.dat | 0 .../meshes/PAT003_07_NCC_morphed-25.vtu | 0 .../PAT003_07_NCC_morphed-25motion_close.dat | 0 .../PAT003_07_NCC_morphed-25motion_open.dat | 0 .../meshes/PAT003_07_RCC_morphed+25.vtu | 0 .../PAT003_07_RCC_morphed+25motion_close.dat | 0 .../PAT003_07_RCC_morphed+25motion_open.dat | 0 .../meshes/PAT003_07_RCC_morphed-25.vtu | 0 .../PAT003_07_RCC_morphed-25motion_close.dat | 0 .../PAT003_07_RCC_morphed-25motion_open.dat | 0 .../cylinder-mesh-complete/cylinder.vtu | 3 + .../mesh-complete.exterior.vtp | 3 + .../mesh_surfaces/inlet.vtp | 3 + .../mesh_surfaces/outlet.vtp | 3 + .../mesh_surfaces/wall.vtp | 3 + .../cylinder-mesh-complete/walls_combined.vtp | 3 + .../meshes/normal.dat | 0 tests/cases/uris/pipe_uris_cfd/result_005.vtu | 3 + tests/cases/uris/pipe_uris_cfd/solver.xml | 142 +++++++++++ tests/cases/uris/pipe_uris_fsi/README.md | 19 ++ .../meshes/PAT003_07_LCC_morphed+25.vtu | 3 + .../PAT003_07_LCC_morphed+25motion_close.dat | 3 + .../PAT003_07_LCC_morphed+25motion_open.dat | 3 + .../meshes/PAT003_07_LCC_morphed-25.vtu | 3 + .../PAT003_07_LCC_morphed-25motion_close.dat | 3 + .../PAT003_07_LCC_morphed-25motion_open.dat | 3 + .../meshes/PAT003_07_NCC_morphed+25.vtu | 3 + .../PAT003_07_NCC_morphed+25motion_close.dat | 3 + .../PAT003_07_NCC_morphed+25motion_open.dat | 3 + .../meshes/PAT003_07_NCC_morphed-25.vtu | 3 + .../PAT003_07_NCC_morphed-25motion_close.dat | 3 + .../PAT003_07_NCC_morphed-25motion_open.dat | 3 + .../meshes/PAT003_07_RCC_morphed+25.vtu | 3 + .../PAT003_07_RCC_morphed+25motion_close.dat | 3 + .../PAT003_07_RCC_morphed+25motion_open.dat | 3 + .../meshes/PAT003_07_RCC_morphed-25.vtu | 3 + .../PAT003_07_RCC_morphed-25motion_close.dat | 3 + .../PAT003_07_RCC_morphed-25motion_open.dat | 3 + .../mesh-complete.exterior.vtp | 3 + .../mesh-complete.mesh.vtu | 3 + .../mesh-surfaces/inlet.vtp | 3 + .../mesh-surfaces/outlet.vtp | 3 + .../mesh-surfaces/wall.vtp | 3 + .../walls_combined.vtp | 3 + .../mesh-complete.exterior.vtp | 3 + .../mesh-complete.mesh.vtu | 3 + .../mesh-surfaces/inlet.vtp | 3 + .../mesh-surfaces/outlet.vtp | 3 + .../mesh-surfaces/wall.vtp | 3 + .../walls_combined_connected_region_0.vtp | 3 + .../walls_combined_connected_region_1.vtp | 3 + .../uris/pipe_uris_fsi/meshes/normal.dat | 3 + tests/cases/uris/pipe_uris_fsi/result_005.vtu | 3 + tests/cases/uris/pipe_uris_fsi/solver.xml | 225 ++++++++++++++++++ tests/test_uris.py | 15 +- 74 files changed, 553 insertions(+), 225 deletions(-) delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-complete.mesh.vtu delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_1.vtp delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_2.vtp delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_3.vtp delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/2_displacement.dat delete mode 100644 tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/3_displacement.dat delete mode 100644 tests/cases/uris/pipe_uris_3d/result_005.vtu delete mode 100644 tests/cases/uris/pipe_uris_3d/solver.xml rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/README.md (90%) create mode 100644 tests/cases/uris/pipe_uris_cfd/lumen_inlet.flow rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed+25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed+25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed+25motion_open.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed-25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed-25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_LCC_morphed-25motion_open.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed+25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed+25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed+25motion_open.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed-25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed-25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_NCC_morphed-25motion_open.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed+25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed+25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed+25motion_open.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed-25.vtu (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed-25motion_close.dat (100%) rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/PAT003_07_RCC_morphed-25motion_open.dat (100%) create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/cylinder.vtu create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh-complete.exterior.vtp create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/inlet.vtp create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/outlet.vtp create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/wall.vtp create mode 100644 tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/walls_combined.vtp rename tests/cases/uris/{pipe_uris_3d => pipe_uris_cfd}/meshes/normal.dat (100%) create mode 100644 tests/cases/uris/pipe_uris_cfd/result_005.vtu create mode 100644 tests/cases/uris/pipe_uris_cfd/solver.xml create mode 100644 tests/cases/uris/pipe_uris_fsi/README.md create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_close.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_open.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.exterior.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.mesh.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/inlet.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/outlet.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/wall.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/walls_combined.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.exterior.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.mesh.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/inlet.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/outlet.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/wall.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_0.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_1.vtp create mode 100644 tests/cases/uris/pipe_uris_fsi/meshes/normal.dat create mode 100644 tests/cases/uris/pipe_uris_fsi/result_005.vtu create mode 100644 tests/cases/uris/pipe_uris_fsi/solver.xml diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-complete.mesh.vtu b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-complete.mesh.vtu deleted file mode 100644 index 50dadfe2c..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-complete.mesh.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f65577877cc38f3538e2cf25c57c0ae4ad0265b46bbf531acbe1f97eb6a0fe2 -size 230860 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_1.vtp b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_1.vtp deleted file mode 100644 index 0efdaff6c..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_1.vtp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aded76c4d51fe9ae782ff64e288602f16eee6bb6333848af783d93f4635ffff0 -size 37570 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_2.vtp b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_2.vtp deleted file mode 100644 index 0dcf01c24..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_2.vtp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e2c6096bf67fb875c6ca6c72b6e01e01056b8965552b4f3bb39e24fa10d5abf -size 5302 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_3.vtp b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_3.vtp deleted file mode 100644 index 83d0b65ef..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/mesh-surfaces/noname_3.vtp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f35edcf3d495bd884df8eca59891d2baba87ca39217bae9e78237338da5062d5 -size 5397 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat deleted file mode 100644 index 0468052c1..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:74cd9de4a9d704bc93f4b498c3b4c658328980758d3b2e3f52f04a2d00262323 -size 51549656 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/2_displacement.dat b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/2_displacement.dat deleted file mode 100644 index cb8e2e5ea..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/2_displacement.dat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7cceb6ce23e9415af96da385c489894f6a4a970accf310f8878118def57dd462 -size 4262556 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/3_displacement.dat b/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/3_displacement.dat deleted file mode 100644 index ee13562e2..000000000 --- a/tests/cases/uris/pipe_uris_3d/meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/3_displacement.dat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:57c2021a5dfa07111b82c9da56ff91dde6651c9fadf29e8574fc0f408f48297f -size 4475766 diff --git a/tests/cases/uris/pipe_uris_3d/result_005.vtu b/tests/cases/uris/pipe_uris_3d/result_005.vtu deleted file mode 100644 index 025a881eb..000000000 --- a/tests/cases/uris/pipe_uris_3d/result_005.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:884dedfcfb99696dfac3f47521f52b3eea2663d9b22a7564eddce4a9035ab44b -size 734173 diff --git a/tests/cases/uris/pipe_uris_3d/solver.xml b/tests/cases/uris/pipe_uris_3d/solver.xml deleted file mode 100644 index ccd61e375..000000000 --- a/tests/cases/uris/pipe_uris_3d/solver.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - false - 3 - 5 - 0.001 - 0.20 - STOP_SIM - - 1 - result - 1 - 1 - 5 - 0 - false - 0 - - 1 - 1 - 1 - - - - - - - - meshes/cylinder-mesh-complete/mesh-complete.mesh.vtu - - meshes/cylinder-mesh-complete/mesh-surfaces/noname_1.vtp - - - meshes/cylinder-mesh-complete/mesh-surfaces/noname_3.vtp - - - meshes/cylinder-mesh-complete/mesh-surfaces/noname_2.vtp - - 0 - - - - - - meshes/PAT003_07_LCC_morphed-25.vtu - meshes/PAT003_07_LCC_morphed-25motion_open.dat - meshes/PAT003_07_LCC_morphed-25motion_close.dat - - - meshes/PAT003_07_NCC_morphed-25.vtu - meshes/PAT003_07_NCC_morphed-25motion_open.dat - meshes/PAT003_07_NCC_morphed-25motion_close.dat - - - meshes/PAT003_07_RCC_morphed-25.vtu - meshes/PAT003_07_RCC_morphed-25motion_open.dat - meshes/PAT003_07_RCC_morphed-25motion_close.dat - - 1.0 - 0.25 - meshes/normal.dat - - - - - meshes/PAT003_07_LCC_morphed+25.vtu - meshes/PAT003_07_LCC_morphed+25motion_open.dat - meshes/PAT003_07_LCC_morphed+25motion_close.dat - - - meshes/PAT003_07_NCC_morphed+25.vtu - meshes/PAT003_07_NCC_morphed+25motion_open.dat - meshes/PAT003_07_NCC_morphed+25motion_close.dat - - - meshes/PAT003_07_RCC_morphed+25.vtu - meshes/PAT003_07_RCC_morphed+25motion_open.dat - meshes/PAT003_07_RCC_morphed+25motion_close.dat - - 1.0 - 0.25 - meshes/normal.dat - - - - - - true - 1 - 10 - 1e-4 - - - fluid - 1.06 - - 0.04 - - 0.3 - - - - - fsils - - 1e-4 - 1e-4 - 100 - 50 - - - - false - true - true - true - true - true - - - - Neu - Steady - - - - Neu - Steady - - - - Dir - General - meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat - Flat - 0 - 0 - 1 - - - - - - true - 1 - 10 - 1e-6 - 0. - - - - fsils - - 1e-4 - - - - true - - - - Dir - General - meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/1_displacement.dat - Flat - 0 - 0 - 1 - - - - Dir - General - meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/3_displacement.dat - Flat - 0 - 0 - 1 - - - - Dir - General - meshes/cylinder-mesh-complete/motion/motion_awave/mesh-complete/2_displacement.dat - Flat - 0 - 0 - 1 - - - - - \ No newline at end of file diff --git a/tests/cases/uris/pipe_uris_3d/README.md b/tests/cases/uris/pipe_uris_cfd/README.md similarity index 90% rename from tests/cases/uris/pipe_uris_3d/README.md rename to tests/cases/uris/pipe_uris_cfd/README.md index 8ce96abf6..d597cf098 100644 --- a/tests/cases/uris/pipe_uris_3d/README.md +++ b/tests/cases/uris/pipe_uris_cfd/README.md @@ -12,7 +12,8 @@ The model parameters are specified in the `Add_URIS_mesh` sub-section meshes/LCC_motion_close.dat 1.0 - 0.25 + 0.2 + 1.0e5 meshes/normal.dat ``` \ No newline at end of file diff --git a/tests/cases/uris/pipe_uris_cfd/lumen_inlet.flow b/tests/cases/uris/pipe_uris_cfd/lumen_inlet.flow new file mode 100644 index 000000000..174af3c61 --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/lumen_inlet.flow @@ -0,0 +1,34 @@ +33 16 +0.000000 0.000000 +0.031250 -1.207301 +0.062500 -4.782786 +0.093750 -10.589077 +0.125000 -18.403023 +0.156250 -27.924348 +0.187500 -38.787146 +0.218750 -50.573962 +0.250000 -62.83185 +0.281250 -75.089744 +0.312500 -86.876560 +0.343750 -97.739358 +0.375000 -107.260684 +0.406250 -115.074629 +0.437500 -120.880920 +0.468750 -124.456405 +0.500000 -125.663706 +0.531250 -124.456405 +0.562500 -120.880920 +0.593750 -115.074629 +0.625000 -107.260684 +0.656250 -97.739358 +0.687500 -86.876560 +0.718750 -75.089744 +0.750000 -62.831853 +0.781250 -50.573962 +0.812500 -38.787146 +0.843750 -27.924348 +0.875000 -18.403023 +0.906250 -10.589077 +0.937500 -4.782786 +0.968750 -1.207301 +1.000000 0.000000 \ No newline at end of file diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed+25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed+25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_LCC_morphed-25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_LCC_morphed-25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed+25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed+25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_NCC_morphed-25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_NCC_morphed-25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed+25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed+25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25.vtu similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25.vtu rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25.vtu diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25motion_close.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25motion_close.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25motion_close.dat diff --git a/tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25motion_open.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/PAT003_07_RCC_morphed-25motion_open.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/PAT003_07_RCC_morphed-25motion_open.dat diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/cylinder.vtu b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/cylinder.vtu new file mode 100644 index 000000000..fd2000e95 --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/cylinder.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c53907e4f3ba5dcbd6e79e704ed33f67343fffcacb2c14dc6ac9b4916121d5db +size 556425 diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh-complete.exterior.vtp b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh-complete.exterior.vtp new file mode 100644 index 000000000..071d0f8ef --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh-complete.exterior.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b429588d76ce643402be587827e68a3ba46eb379a226da8fe2f49f9a67f3d96a +size 68950 diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/inlet.vtp b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/inlet.vtp new file mode 100644 index 000000000..503c23249 --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/inlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d1120b3859fa2debfcfbe47769153db97fcc2c09dd7011968c525e13a08a5aa +size 6865 diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/outlet.vtp b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/outlet.vtp new file mode 100644 index 000000000..c86be9463 --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/outlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b88e5289274a2eb9bcf20f6b80b09bb34c1d89f778545674f0bc5a8e3ad053b +size 6837 diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/wall.vtp b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/wall.vtp new file mode 100644 index 000000000..31b6a1acf --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/mesh_surfaces/wall.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfb6f7144da8f79a72f2273ae0db0b141cd316dc849f096b8b044aa125a09f8b +size 61661 diff --git a/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/walls_combined.vtp b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/walls_combined.vtp new file mode 100644 index 000000000..31b6a1acf --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/meshes/cylinder-mesh-complete/walls_combined.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfb6f7144da8f79a72f2273ae0db0b141cd316dc849f096b8b044aa125a09f8b +size 61661 diff --git a/tests/cases/uris/pipe_uris_3d/meshes/normal.dat b/tests/cases/uris/pipe_uris_cfd/meshes/normal.dat similarity index 100% rename from tests/cases/uris/pipe_uris_3d/meshes/normal.dat rename to tests/cases/uris/pipe_uris_cfd/meshes/normal.dat diff --git a/tests/cases/uris/pipe_uris_cfd/result_005.vtu b/tests/cases/uris/pipe_uris_cfd/result_005.vtu new file mode 100644 index 000000000..f8d9f2a0e --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/result_005.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d50afef3020ef7541fe422fbe75b5ddaf0df8d06d1815a035ed836836341dda4 +size 1460447 diff --git a/tests/cases/uris/pipe_uris_cfd/solver.xml b/tests/cases/uris/pipe_uris_cfd/solver.xml new file mode 100644 index 000000000..5f3a4b066 --- /dev/null +++ b/tests/cases/uris/pipe_uris_cfd/solver.xml @@ -0,0 +1,142 @@ + + + + + + false + 3 + 5 + 0.001 + 0.50 + STOP_SIM + + 1 + result + 1 + 1 + + 1 + 0 + + 1 + 1 + 1 + + + + + + meshes/cylinder-mesh-complete/cylinder.vtu + + meshes/cylinder-mesh-complete/mesh_surfaces/wall.vtp + + + meshes/cylinder-mesh-complete/mesh_surfaces/inlet.vtp + + + meshes/cylinder-mesh-complete/mesh_surfaces/outlet.vtp + + + + + + + meshes/PAT003_07_LCC_morphed-25.vtu + meshes/PAT003_07_LCC_morphed-25motion_open.dat + meshes/PAT003_07_LCC_morphed-25motion_close.dat + + + meshes/PAT003_07_NCC_morphed-25.vtu + meshes/PAT003_07_NCC_morphed-25motion_open.dat + meshes/PAT003_07_NCC_morphed-25motion_close.dat + + + meshes/PAT003_07_RCC_morphed-25.vtu + meshes/PAT003_07_RCC_morphed-25motion_open.dat + meshes/PAT003_07_RCC_morphed-25motion_close.dat + + 1.0 + 0.2 + 0.2 + 1.0e5 + 1.0e5 + meshes/normal.dat + + + + + meshes/PAT003_07_LCC_morphed+25.vtu + meshes/PAT003_07_LCC_morphed+25motion_open.dat + meshes/PAT003_07_LCC_morphed+25motion_close.dat + + + meshes/PAT003_07_NCC_morphed+25.vtu + meshes/PAT003_07_NCC_morphed+25motion_open.dat + meshes/PAT003_07_NCC_morphed+25motion_close.dat + + + meshes/PAT003_07_RCC_morphed+25.vtu + meshes/PAT003_07_RCC_morphed+25motion_open.dat + meshes/PAT003_07_RCC_morphed+25motion_close.dat + + 1.0 + 0.2 + 0.2 + 1.0e5 + 1.0e5 + meshes/normal.dat + + + + + + true + 1 + 10 + 1e-11 + + 1.06 + + 0.04 + + 0.3 + + + true + true + true + true + true + true + + + + + fsils + + 1e-11 + 250 + + + + Dir + Unsteady + lumen_inlet.flow + Parabolic + true + + + + Neu + 0.0 + + + + Dir + Steady + 0.0 + + + + + \ No newline at end of file diff --git a/tests/cases/uris/pipe_uris_fsi/README.md b/tests/cases/uris/pipe_uris_fsi/README.md new file mode 100644 index 000000000..e948f23c4 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/README.md @@ -0,0 +1,19 @@ +# **Problem Description** +Simulation of a 3D pipe FSI problem with an unfitted RIS (resistive immersed surfaces) valve model. + + + +The model parameters are specified in the `Add_URIS_mesh` sub-section +``` + + + meshes/LCC_mesh.vtu + meshes/LCC_motion_open.dat + meshes/LCC_motion_close.dat + + 1.0 + 0.2 + 1.0e5 + meshes/normal.dat + +``` \ No newline at end of file diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25.vtu new file mode 100644 index 000000000..a14631021 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7feba70a7c351d8c48d8a5d778d19cd7f6e5339f6f7f5b7d632c1f5f2ebe2094 +size 14475 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_close.dat new file mode 100644 index 000000000..615f51dea --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:581461715029ba614dbc802150eb9fb83df26268d824383b840c8e0330235701 +size 226254 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_open.dat new file mode 100644 index 000000000..5243ff670 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed+25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cdad75be7fe50dba0254a2fa62d3fb94e59524abd28bdce911ef51539ae42c6 +size 226279 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25.vtu new file mode 100644 index 000000000..e0a5ddd9f --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d8dbac27e2ce90397508a566910c36208688790216b53ce6018eab527e2c7fa +size 14498 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_close.dat new file mode 100644 index 000000000..66f38a9ca --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30427f3c6ac9f2084060b3d910f7c16b238d9dc8870707378c2a3295a15c121f +size 229256 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_open.dat new file mode 100644 index 000000000..a59354f4f --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_LCC_morphed-25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e1d4f5d409353cc8066491fdb6904168a8edbc0ab30b808ef06af47d438b437 +size 229282 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25.vtu new file mode 100644 index 000000000..377bca42d --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b4091d7f776de027e84e38dbf6cefe3856c096e193da426b9e3559c9d5c51bc +size 13111 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_close.dat new file mode 100644 index 000000000..3bb69192e --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce78f987dbd863dc2832e6ee0d807aa7ed1ccf6767c52b78df366dbde590acfc +size 202352 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_open.dat new file mode 100644 index 000000000..b4f31164b --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed+25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:819ca1f18177653708c8adbd5b921f7f763a9acc46713769c45613f413c34a3e +size 202359 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25.vtu new file mode 100644 index 000000000..19ad91d52 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5871abaac13b60eb668be75e279b3883714c7c66381c0c6e17bf63be7d251c9f +size 13107 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_close.dat new file mode 100644 index 000000000..7e5ff6263 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:133044246c7444ae983f112e6505ddc8dca87f8c6210a6bae625ba8538d88ca2 +size 205014 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_open.dat new file mode 100644 index 000000000..4f1d89b0b --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_NCC_morphed-25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f733e3d7185240f3d361c4a7cde034e183b4002588d6568d1a62d37ffe431ade +size 205021 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25.vtu new file mode 100644 index 000000000..5d04c8d2f --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:322d7b952218f6b42428b7c0519d0304ddeb89086b5d942115a8005d2fe7af06 +size 14749 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_close.dat new file mode 100644 index 000000000..41a57fbab --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bd17cd1fd169553aca9c923f778c8fc852afa32b3f6586c26807030ed565b66 +size 234154 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_open.dat new file mode 100644 index 000000000..5e1d76dad --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed+25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c56893d8c482bb2d4dd54df8d4cfb1c6cff9b3171038bab3d25ca6b4889149f8 +size 234145 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25.vtu new file mode 100644 index 000000000..4aaa7444c --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80f8d9d5f5c0d27ba894800697d982b1b1bcde2fd31775b379f8c135dab462af +size 14729 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_close.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_close.dat new file mode 100644 index 000000000..34ae92af4 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_close.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbaf9e52810299e9b2839d48de1b07d726ce1dbbdea66c2325c2f9ad8406a1a1 +size 237212 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_open.dat b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_open.dat new file mode 100644 index 000000000..3cbf647b1 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/PAT003_07_RCC_morphed-25motion_open.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c079625d908daa595e827baf75b79ddec972dd2a085381c950c0533894d92e2 +size 237203 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.exterior.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.exterior.vtp new file mode 100644 index 000000000..7bafdd5a0 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.exterior.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ce9efd8c09a0165d7dda358e2f94c599c00a5711958c6357150f5aae8a48ce2 +size 29513 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.mesh.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.mesh.vtu new file mode 100644 index 000000000..4fe0ddfa1 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-complete.mesh.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:671d1b89bb2c2d54f2e488f09e51e9c0d364d2b108fc8f0f6c638bdf2ca8fa2a +size 70805 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/inlet.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/inlet.vtp new file mode 100644 index 000000000..fd5d4054d --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/inlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f76f6c21923426110999bc1a332105080918ea081fb5c97d3676317db2ecd1b4 +size 4534 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/outlet.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/outlet.vtp new file mode 100644 index 000000000..17232c29c --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/outlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba078930010eef35fa85ac731b926fe878f833a56accce9439c7a8a74f1bd177 +size 4473 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/wall.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/wall.vtp new file mode 100644 index 000000000..3f0b55e3e --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/wall.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b1235491d2d64c4ae0e984c96b5bad86271004b5a06bd76fae1948c9786ce86 +size 27727 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/walls_combined.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/walls_combined.vtp new file mode 100644 index 000000000..0b99bbe27 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-1/walls_combined.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acf56ae0843e6c3b7173bea5a3584925d4a5807ddf658ab0e2eb190145c466ab +size 27737 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.exterior.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.exterior.vtp new file mode 100644 index 000000000..4e2464fea --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.exterior.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6fb764b5d832d3c5384398d9bece5233a27b89009528bff45f5ccc97e6b4e2a +size 53401 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.mesh.vtu b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.mesh.vtu new file mode 100644 index 000000000..cd5cab698 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-complete.mesh.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:defcd9c3ceb7ac6ed34bccb33091f45eb0e5c374f1cd914d6bd2416c76c83bc7 +size 67315 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/inlet.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/inlet.vtp new file mode 100644 index 000000000..82b358939 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/inlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcb58a8ddb94e879491434777cf8072212a07a52acdf91f081b6108351fca85b +size 4684 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/outlet.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/outlet.vtp new file mode 100644 index 000000000..e533c5cb8 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/outlet.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f03142daec11ccad6d2c04b2e091c6dfbfad54b16dd955a16ad41b1c2d4c673a +size 4678 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/wall.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/wall.vtp new file mode 100644 index 000000000..73ae4b8dd --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/wall.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fb67aa8d071279a0a92e26399eae427746792da6bb744e9bd8138c5efbf7a72 +size 51436 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_0.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_0.vtp new file mode 100644 index 000000000..80fd4fc03 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_0.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:392c47456de076900dc25d4a08a8dfca76b77cc7156c1588dad8aba880d9ea77 +size 27496 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_1.vtp b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_1.vtp new file mode 100644 index 000000000..9286b79ec --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_1.vtp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fa44d8e6cf8f5605890c6137166bf32058ba7cabdadb5a7185dbdf485b8e23a +size 27380 diff --git a/tests/cases/uris/pipe_uris_fsi/meshes/normal.dat b/tests/cases/uris/pipe_uris_fsi/meshes/normal.dat new file mode 100644 index 000000000..0a0f7d584 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/meshes/normal.dat @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eeca5df6aff4a09db5908e091542decb1228d17f6c42425bcf0c48bf169c751 +size 48 diff --git a/tests/cases/uris/pipe_uris_fsi/result_005.vtu b/tests/cases/uris/pipe_uris_fsi/result_005.vtu new file mode 100644 index 000000000..e49bdc462 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/result_005.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c626bca307ffeae844a71a4109d46da37b4e7776739528ffefb071e021a8ae37 +size 411402 diff --git a/tests/cases/uris/pipe_uris_fsi/solver.xml b/tests/cases/uris/pipe_uris_fsi/solver.xml new file mode 100644 index 000000000..2e7e76c41 --- /dev/null +++ b/tests/cases/uris/pipe_uris_fsi/solver.xml @@ -0,0 +1,225 @@ + + + + + + false + 3 + 5 + 0.001 + 0.5 + STOP_SIM + + 1 + result + 1 + 1 + + 1 + 0 + + 1 + 1 + 1 + + + + + + meshes/cylinder-mesh-complete_domain-1/mesh-complete.mesh.vtu + + meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/wall.vtp + + + meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/inlet.vtp + + + meshes/cylinder-mesh-complete_domain-1/mesh-surfaces/outlet.vtp + + 0 + + + + meshes/cylinder-mesh-complete_domain-2/mesh-complete.mesh.vtu + + meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_0.vtp + + + meshes/cylinder-mesh-complete_domain-2/walls_combined_connected_region_1.vtp + + + meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/inlet.vtp + + + meshes/cylinder-mesh-complete_domain-2/mesh-surfaces/outlet.vtp + + 1 + + + + pipe_wall + + + + + + meshes/PAT003_07_LCC_morphed-25.vtu + meshes/PAT003_07_LCC_morphed-25motion_open.dat + meshes/PAT003_07_LCC_morphed-25motion_close.dat + + + meshes/PAT003_07_NCC_morphed-25.vtu + meshes/PAT003_07_NCC_morphed-25motion_open.dat + meshes/PAT003_07_NCC_morphed-25motion_close.dat + + + meshes/PAT003_07_RCC_morphed-25.vtu + meshes/PAT003_07_RCC_morphed-25motion_open.dat + meshes/PAT003_07_RCC_morphed-25motion_close.dat + + 1.0 + 0.2 + 0.2 + 1.0e5 + 1.0e5 + meshes/normal.dat + + + + + meshes/PAT003_07_LCC_morphed+25.vtu + meshes/PAT003_07_LCC_morphed+25motion_open.dat + meshes/PAT003_07_LCC_morphed+25motion_close.dat + + + meshes/PAT003_07_NCC_morphed+25.vtu + meshes/PAT003_07_NCC_morphed+25motion_open.dat + meshes/PAT003_07_NCC_morphed+25motion_close.dat + + + meshes/PAT003_07_RCC_morphed+25.vtu + meshes/PAT003_07_RCC_morphed+25motion_open.dat + meshes/PAT003_07_RCC_morphed+25motion_close.dat + + 1.0 + 0.2 + 0.2 + 1.0e5 + 1.0e5 + meshes/normal.dat + + + + true + 1 + 10 + 1e-10 + true + + + fluid + 1.06 + + 0.04 + + 0.2 + + + + struct + + M94 + 1.0 + 5.0e7 + 0.3 + + + + + fsils + + 1e-10 + 500 + 300 + + + + true + true + true + + + + FS_Displacement + + + + true + true + + + + true + + + + Neu + 5.0e4 + + + + Neu + 0.0 + + + + Dir + 0.0 + true + false + (0, 0, 1) + + + + Dir + 0.0 + true + false + (0, 0, 1) + + + + + + true + 1 + 10 + 1e-10 + 0.3 + + + + fsils + + 1e-10 + 5000 + 300 + + + + true + + + + Dir + 0.0 + + + + Dir + 0.0 + + + + + \ No newline at end of file diff --git a/tests/test_uris.py b/tests/test_uris.py index f33f1817a..03d334ff3 100644 --- a/tests/test_uris.py +++ b/tests/test_uris.py @@ -6,9 +6,16 @@ base_folder = "uris" # Fields to test -fields = ["Displacement", "Pressure", "Velocity", "WSS"] +fields_cfd = ["Velocity", "Pressure", "Traction", "WSS", "Vorticity", "Divergence"] -def test_pipe_uris_3d(n_proc): - test_folder = "pipe_uris_3d" +def test_pipe_uris_cfd(n_proc): + test_folder = "pipe_uris_cfd" t_max = 5 - run_with_reference(base_folder, test_folder, fields, n_proc, t_max) \ No newline at end of file + run_with_reference(base_folder, test_folder, fields_cfd, n_proc, t_max) + +fields_fsi = ["Displacement", "Pressure", "Velocity"] + +def test_pipe_uris_fsi(n_proc): + test_folder = "pipe_uris_fsi" + t_max = 5 + run_with_reference(base_folder, test_folder, fields_fsi, n_proc, t_max) \ No newline at end of file From f5d5f2f25fcf07174bb2317bdec841e2d69780a8 Mon Sep 17 00:00:00 2001 From: hanzhao2020 Date: Tue, 17 Feb 2026 16:14:04 -0800 Subject: [PATCH 2/5] Adding the explicit geometric coupling option in the nonlinear solver for FSI problems. --- Code/Source/solver/ComMod.h | 3 ++ Code/Source/solver/Parameters.cpp | 1 + Code/Source/solver/Parameters.h | 1 + Code/Source/solver/distribute.cpp | 1 + Code/Source/solver/fluid.cpp | 6 +-- Code/Source/solver/pic.cpp | 64 ++++++++++++++++++++++--------- Code/Source/solver/read_files.cpp | 5 ++- 7 files changed, 58 insertions(+), 23 deletions(-) diff --git a/Code/Source/solver/ComMod.h b/Code/Source/solver/ComMod.h index 91ed18e48..fdd8bce3f 100644 --- a/Code/Source/solver/ComMod.h +++ b/Code/Source/solver/ComMod.h @@ -1209,6 +1209,9 @@ class eqType /// @brief URIS: Outputs std::vector outURIS; + /// @brief Explicit geometry coupling + bool expl_geom_cpl = false; + /// @brief Body force associated with this equation std::vector bf; }; diff --git a/Code/Source/solver/Parameters.cpp b/Code/Source/solver/Parameters.cpp index ee960e042..d308e89b7 100644 --- a/Code/Source/solver/Parameters.cpp +++ b/Code/Source/solver/Parameters.cpp @@ -2154,6 +2154,7 @@ EquationParameters::EquationParameters() set_parameter("Tolerance", 0.5, !required, tolerance); set_parameter("Use_taylor_hood_type_basis", false, !required, use_taylor_hood_type_basis); + set_parameter("Explicit_geometric_coupling", false, !required, explicit_geometric_coupling); } diff --git a/Code/Source/solver/Parameters.h b/Code/Source/solver/Parameters.h index 9392c4499..e985b4897 100644 --- a/Code/Source/solver/Parameters.h +++ b/Code/Source/solver/Parameters.h @@ -1377,6 +1377,7 @@ class EquationParameters : public ParameterLists Parameter type; Parameter use_taylor_hood_type_basis; + Parameter explicit_geometric_coupling; // Inverse of Darcy permeability. Default value of 0.0 for Navier-Stokes and non-zero for Navier-Stokes-Brinkman Parameter inverse_darcy_permeability; diff --git a/Code/Source/solver/distribute.cpp b/Code/Source/solver/distribute.cpp index e3c2569a2..e3522ef84 100644 --- a/Code/Source/solver/distribute.cpp +++ b/Code/Source/solver/distribute.cpp @@ -1470,6 +1470,7 @@ void dist_eq(ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, const std:: cm.bcast(cm_mod, &lEq.tol); cm.bcast(cm_mod, &lEq.useTLS); cm.bcast(cm_mod, &lEq.assmTLS); + cm.bcast(cm_mod, &lEq.expl_geom_cpl); #ifdef dist_eq dmsg << "lEq.nOutput: " << lEq.nOutput; diff --git a/Code/Source/solver/fluid.cpp b/Code/Source/solver/fluid.cpp index b064ea762..1c9e09a04 100644 --- a/Code/Source/solver/fluid.cpp +++ b/Code/Source/solver/fluid.cpp @@ -2239,11 +2239,11 @@ void fluid_3d_m(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int e // Local residue for (int a = 0; a < eNoNw; a++) { lR(0,a) = lR(0,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[0]+up[0]) - + Res*DDir*w*Nw(a)*(u[0]+up[0]); + + Res*DDir*w*Nw(a)*(u[0]); lR(1,a) = lR(1,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[1]+up[1]) - + Res*DDir*w*Nw(a)*(u[1]+up[1]); + + Res*DDir*w*Nw(a)*(u[1]); lR(2,a) = lR(2,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[2]+up[2]) - + Res*DDir*w*Nw(a)*(u[2]+up[2]); + + Res*DDir*w*Nw(a)*(u[2]); } } diff --git a/Code/Source/solver/pic.cpp b/Code/Source/solver/pic.cpp index 34a274def..fb44b0ac9 100644 --- a/Code/Source/solver/pic.cpp +++ b/Code/Source/solver/pic.cpp @@ -143,7 +143,7 @@ void picc(Simulation* simulation) pic_eth(simulation); } - if (eq.phys == Equation_FSI) { + if (eq.phys == Equation_FSI && !eq.expl_geom_cpl) { int s = com_mod.eq[1].s; int e = com_mod.eq[1].e; #ifdef debug_picc @@ -263,30 +263,56 @@ void picc(Simulation* simulation) //if (ALL(eq.ok)) RETURN if (eq.coupled) { - cEq = cEq + 1; - #ifdef debug_picc - dmsg << "eq " << " coupled "; - dmsg << "1st update cEq: " << cEq; - #endif + if (!eq.expl_geom_cpl) { + cEq = cEq + 1; + #ifdef debug_picc + dmsg << "eq " << " coupled "; + dmsg << "1st update cEq: " << cEq; + #endif + + auto& eqs = com_mod.eq; + if (std::count_if(eqs.begin(),eqs.end(),[](eqType& eq){return !eq.coupled || eq.ok;}) == eqs.size()) { + while (cEq < com_mod.nEq) { + if (!eqs[cEq].coupled) { + break; + } + cEq = cEq + 1; + } - auto& eqs = com_mod.eq; - if (std::count_if(eqs.begin(),eqs.end(),[](eqType& eq){return !eq.coupled || eq.ok;}) == eqs.size()) { - while (cEq < com_mod.nEq) { - if (!eqs[cEq].coupled) { - break; + } else { + if (cEq >= com_mod.nEq) { + cEq = 0; } - cEq = cEq + 1; - } - } else { - if (cEq >= com_mod.nEq) { - cEq = 0; + while (!eqs[cEq].coupled) { + cEq = cEq + 1; + if (cEq >= com_mod.nEq) { + cEq = 0; + } + } } - - while (!eqs[cEq].coupled) { + } else { + // Increment the equation counter if the current equation is ok + if (eq.ok) { cEq = cEq + 1; if (cEq >= com_mod.nEq) { - cEq = 0; + cEq = 0; + } + } + // Update the acceleration, velocity, and displacement when the FSI equation is ok + if (eq.ok && eq.phys == Equation_FSI) { + int s = com_mod.eq[1].s; + int e = com_mod.eq[1].e; + for (int Ac = 0; Ac < tnNo; Ac++) { + if (all_fun::is_domain(com_mod, eq, Ac, Equation_struct) || + all_fun::is_domain(com_mod, eq, Ac, Equation_ustruct) || + all_fun::is_domain(com_mod, eq, Ac, Equation_lElas)) { + for (int i = 0; i < e-s+1; i++) { + An(i+s,Ac) = An(i,Ac); + Yn(i+s,Ac) = Yn(i,Ac); + Dn(i+s,Ac) = Dn(i,Ac); + } + } } } } diff --git a/Code/Source/solver/read_files.cpp b/Code/Source/solver/read_files.cpp index 8f0bf4ffa..cd89c95c2 100644 --- a/Code/Source/solver/read_files.cpp +++ b/Code/Source/solver/read_files.cpp @@ -1381,6 +1381,7 @@ void read_eq(Simulation* simulation, EquationParameters* eq_params, eqType& lEq) lEq.minItr = eq_params->min_iterations.value(); lEq.maxItr = eq_params->max_iterations.value(); lEq.tol = eq_params->tolerance.value(); + lEq.expl_geom_cpl = eq_params->explicit_geometric_coupling.value(); // Initialize coupled BC. // @@ -1796,7 +1797,9 @@ void read_files(Simulation* simulation, const std::string& file_name) if (eq.phys == EquationType::phys_mesh) { if (!com_mod.mvMsh) { throw std::runtime_error("mesh equation can only be specified after FSI equation"); - } + } + // Use the explicit geometry coupling flag of the FSI equation. + eq.expl_geom_cpl = com_mod.eq[0].expl_geom_cpl; } } #ifdef debug_read_files From 365f5b5c8e4b755d294e7b6b9c5f20bfe1236273 Mon Sep 17 00:00:00 2001 From: hanzhao2020 Date: Fri, 20 Feb 2026 15:26:06 -0800 Subject: [PATCH 3/5] Removed extra () in RIS code --- Code/Source/solver/fluid.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Code/Source/solver/fluid.cpp b/Code/Source/solver/fluid.cpp index 1c9e09a04..37a81e270 100644 --- a/Code/Source/solver/fluid.cpp +++ b/Code/Source/solver/fluid.cpp @@ -2239,11 +2239,11 @@ void fluid_3d_m(ComMod& com_mod, const int vmsFlag, const int eNoNw, const int e // Local residue for (int a = 0; a < eNoNw; a++) { lR(0,a) = lR(0,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[0]+up[0]) - + Res*DDir*w*Nw(a)*(u[0]); + + Res*DDir*w*Nw(a)*u[0]; lR(1,a) = lR(1,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[1]+up[1]) - + Res*DDir*w*Nw(a)*(u[1]); + + Res*DDir*w*Nw(a)*u[1]; lR(2,a) = lR(2,a) + mu*K_inverse_darcy_permeability*w*Nw(a)*(u[2]+up[2]) - + Res*DDir*w*Nw(a)*(u[2]); + + Res*DDir*w*Nw(a)*u[2]; } } From c250c43efee794c10437d66d096c267e7111d451 Mon Sep 17 00:00:00 2001 From: hanzhao2020 Date: Fri, 20 Feb 2026 23:54:02 -0800 Subject: [PATCH 4/5] Adding comments for the explicit geometric coupling implementation --- Code/Source/solver/pic.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Code/Source/solver/pic.cpp b/Code/Source/solver/pic.cpp index fb44b0ac9..54138637b 100644 --- a/Code/Source/solver/pic.cpp +++ b/Code/Source/solver/pic.cpp @@ -143,6 +143,8 @@ void picc(Simulation* simulation) pic_eth(simulation); } + // If explicit geometric coupling is not used, update the acceleration, + // velocity, and displacement for the FSI equation as usual if (eq.phys == Equation_FSI && !eq.expl_geom_cpl) { int s = com_mod.eq[1].s; int e = com_mod.eq[1].e; @@ -264,6 +266,8 @@ void picc(Simulation* simulation) if (eq.coupled) { if (!eq.expl_geom_cpl) { + // For coupled equations, if explicit geometric coupling is not used, + // increment the equation counter after each linear solve cEq = cEq + 1; #ifdef debug_picc dmsg << "eq " << " coupled "; @@ -292,7 +296,8 @@ void picc(Simulation* simulation) } } } else { - // Increment the equation counter if the current equation is ok + // If explicit geometric coupling is used for coupled equations, + // only update the equation counter if the current equation is converged if (eq.ok) { cEq = cEq + 1; if (cEq >= com_mod.nEq) { From d8e0eb188d0864f63330edb5a0e5f9765b18c696 Mon Sep 17 00:00:00 2001 From: hanzhao2020 Date: Sat, 21 Feb 2026 12:53:32 -0800 Subject: [PATCH 5/5] Code improvements for the explicit geometric coupling --- Code/Source/solver/Parameters.h | 4 ++++ Code/Source/solver/pic.cpp | 6 ++++++ Code/Source/solver/read_files.cpp | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/Code/Source/solver/Parameters.h b/Code/Source/solver/Parameters.h index e985b4897..d4db1580b 100644 --- a/Code/Source/solver/Parameters.h +++ b/Code/Source/solver/Parameters.h @@ -1377,6 +1377,10 @@ class EquationParameters : public ParameterLists Parameter type; Parameter use_taylor_hood_type_basis; + + // Explicit geometric coupling for FSI simulations: the fluid-structure equations + // are solved to convergence using the mesh displacement from the previous time step, + // and only then is the mesh equation solved. Parameter explicit_geometric_coupling; // Inverse of Darcy permeability. Default value of 0.0 for Navier-Stokes and non-zero for Navier-Stokes-Brinkman diff --git a/Code/Source/solver/pic.cpp b/Code/Source/solver/pic.cpp index 54138637b..96f7b5748 100644 --- a/Code/Source/solver/pic.cpp +++ b/Code/Source/solver/pic.cpp @@ -146,6 +146,9 @@ void picc(Simulation* simulation) // If explicit geometric coupling is not used, update the acceleration, // velocity, and displacement for the FSI equation as usual if (eq.phys == Equation_FSI && !eq.expl_geom_cpl) { + if (com_mod.eq[1].phys != Equation_mesh) { + throw std::runtime_error("PICC: FSI simulation requires a mesh motion equation as the second equation."); + } int s = com_mod.eq[1].s; int e = com_mod.eq[1].e; #ifdef debug_picc @@ -306,6 +309,9 @@ void picc(Simulation* simulation) } // Update the acceleration, velocity, and displacement when the FSI equation is ok if (eq.ok && eq.phys == Equation_FSI) { + if (com_mod.eq[1].phys != Equation_mesh) { + throw std::runtime_error("PICC: FSI simulation requires a mesh motion equation as the second equation."); + } int s = com_mod.eq[1].s; int e = com_mod.eq[1].e; for (int Ac = 0; Ac < tnNo; Ac++) { diff --git a/Code/Source/solver/read_files.cpp b/Code/Source/solver/read_files.cpp index cd89c95c2..9f09dba67 100644 --- a/Code/Source/solver/read_files.cpp +++ b/Code/Source/solver/read_files.cpp @@ -1460,6 +1460,13 @@ void read_eq(Simulation* simulation, EquationParameters* eq_params, eqType& lEq) set_equation_properties(simulation, eq_params, lEq, propL, outPuts, nDOP); + // Check if explicit geometric coupling is allowed for the equation + if (lEq.expl_geom_cpl) { + if (lEq.phys != EquationType::phys_FSI) { + throw std::runtime_error("Explicit geometric coupling is only allowed for FSI equation."); + } + } + // Read VTK files or boundaries. [TODO:DaveP] this is not a correct comment. read_outputs(simulation, eq_params, lEq, nDOP, outPuts);