Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
fa084f9
fix Nab issue
daisy20170101 Sep 3, 2025
79493a7
test NikkhooWalter paper
daisy20170101 Sep 16, 2025
8d9b59c
fix index in hdf5
daisy20170101 Sep 16, 2025
ebbdbf6
fix parameter file
daisy20170101 Sep 16, 2025
ee32284
start a new branch for implementing NikkhooWalter stress calculation
daisy20170101 Sep 16, 2025
f475043
initialize pore fluid
daisy20170101 Sep 23, 2025
fb44da7
add pore fluid overside of the OD
daisy20170101 Sep 23, 2025
72cc25f
add bp6 test files
daisy20170101 Sep 23, 2025
bca8c41
add new variable pore fluid in dydt
daisy20170101 Sep 23, 2025
5767abe
fix compilation error
daisy20170101 Sep 23, 2025
4d56a0d
update
daisy20170101 Sep 23, 2025
765ca0a
fix errors in compilation
daisy20170101 Sep 23, 2025
23f47d4
fix errors in compilation
daisy20170101 Sep 23, 2025
bfa386f
fix errors in compilation
daisy20170101 Sep 23, 2025
baba952
fix errors in compilation
daisy20170101 Sep 23, 2025
fe6c41c
fix errors in compilation
daisy20170101 Sep 23, 2025
8213a77
fix errors in compilation
daisy20170101 Sep 23, 2025
4b9547f
fix errors in compilation
daisy20170101 Sep 23, 2025
83a1b38
fix dt_pf
daisy20170101 Sep 23, 2025
4a0283e
fix dt_pf
daisy20170101 Sep 23, 2025
2bcce6e
fix dt_pf
daisy20170101 Sep 24, 2025
c79aaed
update pore fluid output and readme
daisy20170101 Sep 24, 2025
5fd1ae4
fix initial parameters and variables
daisy20170101 Sep 24, 2025
bd0b163
update fltst file
daisy20170101 Sep 24, 2025
964f32d
update fltst file
daisy20170101 Sep 24, 2025
3ee6ca5
update fltst file
daisy20170101 Sep 24, 2025
d1c7887
fix error
daisy20170101 Sep 24, 2025
998fb90
fix error
daisy20170101 Sep 24, 2025
853da6f
fix error
daisy20170101 Sep 24, 2025
5dfee3d
fix error
daisy20170101 Sep 24, 2025
6d4f07a
write output
daisy20170101 Sep 24, 2025
980fd3f
update dt_try
daisy20170101 Sep 24, 2025
20a4a9a
fix Vini
daisy20170101 Sep 24, 2025
eff9d01
update vini
daisy20170101 Sep 24, 2025
92dff06
update time
daisy20170101 Sep 24, 2025
0d9277f
update time
daisy20170101 Sep 24, 2025
49c100a
update time
daisy20170101 Sep 24, 2025
2cfea5e
fix minimum dt
daisy20170101 Sep 24, 2025
24601da
fix minimum dt
daisy20170101 Sep 24, 2025
853af53
fix
daisy20170101 Sep 24, 2025
708859d
fix
daisy20170101 Sep 24, 2025
3ed4117
fix typo
daisy20170101 Sep 24, 2025
50fbd56
mod time step
daisy20170101 Sep 24, 2025
f625563
add parameter files
Sep 24, 2025
ec8b1cb
modify step
daisy20170101 Sep 24, 2025
d6789bd
modify step
daisy20170101 Sep 24, 2025
8d77ceb
add compute pressure func
daisy20170101 Sep 24, 2025
a4a8d61
add compute dpf_df func
daisy20170101 Sep 24, 2025
9c67e5f
add compute dpf_df func
daisy20170101 Sep 24, 2025
03a6bc6
fix pressure
daisy20170101 Sep 24, 2025
af92c45
update pore fuild
daisy20170101 Sep 24, 2025
c29e1f0
update dydt, yt
daisy20170101 Sep 24, 2025
4f6fc88
update dydt, yt
daisy20170101 Sep 24, 2025
7b11b5c
fix time step
daisy20170101 Sep 24, 2025
ce15b9d
add mesh
Sep 24, 2025
024f737
try time step
Sep 24, 2025
b2b8395
update min df
Sep 25, 2025
ba56295
fix error
daisy20170101 Sep 25, 2025
85cc2eb
improve dt pf
daisy20170101 Sep 25, 2025
7889820
improve dt pf
daisy20170101 Sep 25, 2025
89baa5e
shift to different dt_try setup
daisy20170101 Sep 25, 2025
aca0c33
shift to different dt_try setup
daisy20170101 Sep 25, 2025
c3bc5fc
fix cooridinate, replacing x with z in deriva
Sep 25, 2025
7438eef
fix error in z_all scatterv
Sep 25, 2025
5bd62a9
replace ds with ss dislocation
Oct 1, 2025
4cf1870
Update index.rst
daisy20170101 Oct 1, 2025
fcc286a
update READme
daisy20170101 Oct 1, 2025
2502d5d
update READme
daisy20170101 Oct 1, 2025
969c25e
update triangular_mesh
daisy20170101 Oct 1, 2025
f996261
Update README.md
daisy20170101 Oct 1, 2025
21eb739
update pore fluid solution
Oct 1, 2025
3693bae
Merge branch 'pore_fluid' of https://github.com/daisy20170101/TriBIE …
daisy20170101 Oct 1, 2025
10a1509
add examples3
daisy20170101 Oct 15, 2025
6d0fa37
Document casez_log implementation issue in Nikkhoo-Walter method
claude Nov 11, 2025
6a77aaf
Fix casez_log implementation to match MATLAB reference
claude Nov 11, 2025
fcda6ac
Add summary of casez_log fix implementation
claude Nov 11, 2025
787db86
Remove redundant DP definition from test_casez.f90
claude Nov 11, 2025
49676a1
Format test_casez output as two-column table
claude Nov 11, 2025
e6a9776
Add distance column to test_casez output
claude Nov 11, 2025
87d56e1
Add test_casep.f90 with full stress/strain table output
claude Nov 11, 2025
840a313
Fix trimode_finder to use tolerance-based comparison
claude Nov 11, 2025
ab4d5aa
Add documentation for trimode_finder tolerance fix
claude Nov 11, 2025
1db6f15
Add bounds checking to trimode_finder on-edge detection
claude Nov 11, 2025
9ab0ef1
Document bounds checking fix for extended edge lines
claude Nov 11, 2025
208a13f
Fix variable name conflict in debug_trimode_detailed.f90
claude Nov 11, 2025
ca5ba9b
Add compilation script for test programs
claude Nov 11, 2025
0fb1bce
Add verification script to check fix implementation
claude Nov 11, 2025
26fc5f2
Add comprehensive troubleshooting tools for NaN issue
claude Nov 11, 2025
aa3ad13
Add diagnostic tools to debug persistent NaN issue
claude Nov 11, 2025
1077a76
Add comprehensive debug tracing to identify NaN source
claude Nov 11, 2025
20512c5
Document debug findings and next steps for NaN investigation
claude Nov 11, 2025
02cd8a0
Fix angular dislocation singularities causing NaN for Points 8 & 9
claude Nov 11, 2025
f542258
Add comprehensive summary of all NaN fixes
claude Nov 11, 2025
6c332e2
Replace zero-return with regularization for angular dislocation singu…
claude Nov 11, 2025
48b1bd4
Fix double singularity issue with hybrid approach
claude Nov 11, 2025
87dd8b1
Document hybrid singularity handling approach
claude Nov 11, 2025
57e94b1
Add r-zeta regularization when W is singular - fixes NaN issue
claude Nov 11, 2025
9ad69d3
Return zero for ANY angular dislocation singularity - regularization …
claude Nov 11, 2025
f2f463d
Add MATLAB reference implementation for comparison
claude Nov 11, 2025
6a9c7f1
Remove ALL singularity handling to match MATLAB exactly
claude Nov 11, 2025
ea70c0d
Remove compiled .mod file from repository
claude Nov 11, 2025
b81563b
Add MATLAB test for TDstressHS (half-space) to match Fortran test
claude Nov 11, 2025
8ee15e3
Add detailed contribution breakdown for MATLAB/Fortran comparison
claude Nov 11, 2025
5c49655
CRITICAL FIX: Calculate intermediate variables in angdis_strain
claude Nov 11, 2025
8e29c92
Add documentation for critical bug fix
claude Nov 11, 2025
754d373
Fix DP symbol conflict in test programs
claude Nov 11, 2025
35c73f3
Fix barycentric coordinate calculation in trimode_finder
claude Nov 11, 2025
ee4cc30
Add comprehensive documentation of both critical bug fixes
claude Nov 11, 2025
fcbcd2c
Simplify edge detection logic to match MATLAB exactly
claude Nov 11, 2025
e6c4c4b
Add comprehensive documentation of all three bug fixes
claude Nov 11, 2025
96c000d
Add verification tests for points 4, 5, 12, 15 (singular points)
claude Nov 11, 2025
a85ae8a
CRITICAL FIX: Correct coordinate transformation matrix orientation
claude Nov 11, 2025
9260d73
Add Python implementation of triangular dislocation stress calculations
claude Nov 11, 2025
491ff5e
Complete Python implementation of harmonic function for TDstressHS
claude Nov 11, 2025
dc1c59f
Add comprehensive testing for all 15 points in Python implementation
claude Nov 11, 2025
da00ea7
Fix test coordinates to match Fortran test exactly
claude Nov 12, 2025
28e3078
Add comprehensive testing for all 15 points in Python implementation
claude Nov 12, 2025
3dcc740
Document critical matrix transpose bugs in Python implementation
claude Nov 12, 2025
ee61813
Fix matrix transpose errors in coordinate transformations
claude Nov 12, 2025
5d9a7af
Document results after matrix transpose fixes
claude Nov 12, 2025
0bc823f
Add .gitignore for Python and common development files
claude Nov 12, 2025
62c3b2c
Identify Bug #2: Wrong array extraction in trimodefinder
claude Nov 12, 2025
b1d7de8
Complete array extraction audit: 4/5 correct, Bug #2 confirmed
claude Nov 12, 2025
ba338e5
Add MATLAB scripts for computing triangular Green's function matrix
claude Nov 18, 2025
799fdd8
Fix Bug #2: Correct array extraction in trimodefinder
claude Nov 20, 2025
6275dd6
Remove Python cache files from version control
claude Nov 20, 2025
20581a8
Merge branch 'SEAS_BP5_hdf5_loop' into v2.0
daisy20170101 Nov 24, 2025
be8d67e
Merge branch 'claude/open-tribi-011CV1WxGz1Q8daU8f4udfNA' into v2.0
daisy20170101 Nov 26, 2025
ed2484d
Merge branch 'pore_fluid' into v2.0
daisy20170101 Dec 3, 2025
9a77894
Revert "Merge branch 'claude/open-tribi-011CV1WxGz1Q8daU8f4udfNA' int…
Dec 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NikkhooWalter2015/Makefile.debug
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@ clean:
rm -f *.o debug_nikkhoo

.PHONY: clean

424 changes: 409 additions & 15 deletions NikkhooWalter2015/debug_matlab.m

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions NikkhooWalter2015/debug_nikkhoo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,10 @@ program debug_nikkhoo
logical :: casep_log, casen_log, casez_log

! Initialize test data (single point for debugging)
x = [-1.0_DP/3.0_DP]
y = [-1.0_DP/3.0_DP]
z = [-14.0_DP/3.0_DP]

x = [7.0_DP]
y = [-1.0_DP]
z = [-5.0_DP]

p1 = [-1.0_DP, -1.0_DP, -5.0_DP]
p2 = [1.0_DP, -1.0_DP, -5.0_DP]
Expand Down Expand Up @@ -143,7 +144,7 @@ program debug_nikkhoo
write(*,*) ''

! Determine configuration
call trimode_finder(y_td, z_td, x_td, p1_td, p2_td, p3_td, trimode)
call trimode_finder(x_td, y_td, z_td, p1_td, p2_td, p3_td, trimode)

casep_log = (trimode == 1)
casen_log = (trimode == -1)
Expand Down
Binary file added NikkhooWalter2015/nikkhoo_walter.mod
Binary file not shown.
161 changes: 3 additions & 158 deletions NikkhooWalter2015/sub_nikkhoo.f90

Large diffs are not rendered by default.

17 changes: 13 additions & 4 deletions NikkhooWalter2015/test_nikkhoo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,27 @@ program test_nikkhoo
implicit none

! Test parameters
integer, parameter :: n_points = 7
integer, parameter :: n_points = 1
integer :: i
real(DP), dimension(n_points) :: x, y, z
real(DP), dimension(3) :: p1, p2, p3
real(DP) :: ss, ds, ts, mu, lambda
real(DP), dimension(n_points, 6) :: stress, strain

! Initialize test data
x = [-1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP/3.0_DP, 7.0_DP, -7.0_DP, -1.0_DP, -1.0_DP]
y = [-1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP, -1.0_DP, -3.0_DP, 3.0_DP]
z = [-3.0_DP, -14.0_DP/3.0_DP, -6.0_DP, -5.0_DP, -5.0_DP, -6.0_DP, -3.0_DP]
! Original test points
!x = [-1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP/3.0_DP, 7.0_DP, -7.0_DP, -1.0_DP, -1.0_DP, &
! 3.0_DP, -3.0_DP, -1.0_DP, -1.0_DP, 1.0_DP, -1.0_DP, -1.0_DP, 1.0_DP]
!y = [-1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP/3.0_DP, -1.0_DP, -1.0_DP, -3.0_DP, 3.0_DP, &
! -3.0_DP, 3.0_DP, -1.0_DP, 1.0_DP, -1.0_DP, -1.0_DP, 1.0_DP, -1.0_DP]
!z = [-3.0_DP, -14.0_DP/3.0_DP, -6.0_DP, -5.0_DP, -5.0_DP, -6.0_DP, -3.0_DP, &
! -6.0_DP, -3.0_DP, -1.0_DP, -1.0_DP, -1.0_DP, -8.0_DP, -8.0_DP, -8.0_DP]


x = [-1.0_DP/3.0_DP]
y = [-1.0_DP/3.0_DP]
z = [-14.0_DP/3.0_DP]

p1 = [-1.0_DP, -1.0_DP, -5.0_DP]
p2 = [1.0_DP, -1.0_DP, -5.0_DP]
p3 = [-1.0_DP, 1.0_DP, -4.0_DP]
Expand Down
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
### SEAS Benchmark BP6

The Seismological Grand Challenge in Subduction Megathrust Earthquake Modeling (SEAS) Benchmark Problem 6 (BP6) is a rate-and-state, quasi-dynamic earthquake cycle problem on a 3D dipping fault. This repository includes an example setup and data for BP6 under `example2/`.

- **Objective**: Validate and compare numerical implementations for quasi-dynamic cycles with rate-and-state friction on a geometrically complex fault.
- **What’s included**: Input files, derived profiles, and a reference sketch of the BP6 configuration.
- **Where to start**: See `example2/` for inputs and the mesh, and `src/` for the solver modules.

#### BP6 Configuration Sketch

![BP6 configuration sketch](example2/bp6-sketch.png)

The sketch illustrates the dipping fault geometry, nucleation region, and boundary conditions typically used for BP6. Use it alongside the files under `example2/` to reproduce the configuration and compare with benchmark outputs.




# TriBIE

**TriBIE** (Triangular Boundary Integral Equation) is a high-performance Fortran90 parallel computing framework for simulating earthquake cycles, slow slip events, and aseismic transients on complex 3D fault geometries. The code employs hybrid MPI+OpenMP parallelization with advanced computational optimizations including SIMD vectorization and dynamic load balancing to efficiently model rate-and-state friction physics on triangular fault meshes embedded in elastic half-space media.
Expand Down
Loading