QuakeNN
Description
Overview:
QuakeNN is a Python-based machine learning software designed to solve forward and inverse problems in earthquake dynamics. It employs a tool called Physics-Informed Neural Networks (PINNs) to solve these problems. Currently, the software focuses on two key problems: (1) fault friction in a simple spring-block model with a highly non-linear friction law, and (2) acoustic and vector wave equations. Future developments will expand the software's capabilities to handle more complex models and integrate other tools, such as operator learning, to accelerate the modeling process.
Features:
Solving forward problem with adaptive time-stepping PINNs
Solving forward problem with data-driven PINNs
Estimating time-independent stiffness term with synthetic measurements
Estimating time-dependent friction with synthetic measurements
Estimating frictional stability parameters with synthetic measurements
Contributing:
The QuakeNN GitHub source code repository can be found here:
https://github.com/napatt2/QuakeNN.git
Running QuakeNN:
This app requires the user to specify input parameters in a `params.json` file for successful execution.
Descriptions of each variable are as follows:
- horizontal: Non-dimensional frequency related to the coil spring connecting blocks.
- vertical: Non-dimensional frequency related to the leaf spring connecting blocks to the driving plate.
- psi: Non-dimensional spring constant.
- f: Scaled steady-state friction coefficient.
- epsilon_1: A ratio of the stress parameters in the rate-and-state friction law \((b-a)/a\) for the middle blocks.
- epsilon_2: A ratio of the stress parameters in the rate-and-state friction law \((b-a)/a\) for the side blocks.
- epsilon_guess: Initial guess for the ratio of stress parameters in the rate-and-state friction law \((b-a)/a\) for all blocks.
- n_middle: Number of middle blocks out of 10.
- t_start: Initial time.
- t_end: Final time.
- unit: Size of each layer in the neural network.
- layer: Number of layers in the neural network.
- epoch: Number of training iterations.
- learning_rate: Learning rate.
- num_res: Number of residual points in the equation loss.
- num_test: Number of testing points in the domain.