-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Updating Docs for commit 5d4cbf2 made on 2024-03-28T04:58:39+00:00 fr…
…om refs/heads/dev by AmirMardan
- Loading branch information
0 parents
commit 0b4360a
Showing
303 changed files
with
82,301 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# GitHub Pages Cache | ||
|
||
Nothing to see here. The contents of this branch are essentially a cache that's not intended to be viewed on github.com. | ||
|
||
|
||
If you're looking to update our documentation, check the relevant development branch's 'docs/' dir. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 474babfb589164d6e394b8badc5b334c | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
.. PINN-FWI documentation master file, created by | ||
sphinx-quickstart on Thu Mar 28 00:06:12 2024. | ||
You can adapt this file completely to your liking, but it should at least | ||
contain the root `toctree` directive. | ||
Welcome to PINN-FWI's documentation! | ||
==================================== | ||
|
||
This is preliminary documentation for Physics-Informed Neural Networks for Full-Waveform Inversion (PINN-FWI) | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
:caption: Getting started: | ||
|
||
source/readme | ||
|
||
.. toctree:: | ||
:maxdepth: 1 | ||
:caption: Tools: | ||
|
||
source/tools | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
config module | ||
============= | ||
|
||
.. automodule:: config | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
networks module | ||
=============== | ||
|
||
.. automodule:: networks | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
pyfwi\_tools module | ||
=================== | ||
|
||
.. automodule:: pyfwi_tools | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
PIANN-FWI for estimating the Marmousi velocity model | ||
=================================================== | ||
|
||
In this repository, I implemented the physics-informed neural network | ||
(PINN) for full-waveform inversion. This PINN can be implemented with or | ||
without attention block. The architecture of their study is shown in the | ||
following figure. | ||
|
||
.. figure:: /readme_files/architecture.png | ||
:alt: architecture | ||
|
||
|
||
For running the code, you should use this | ||
`notebook <https://github.com/AmirMardan/pinn_fwi/blob/main/pinn_fwi.ipynb>`__. | ||
The required parameters for running this notebook should be set in this | ||
`config <https://github.com/AmirMardan/pinn_fwi/blob/main/config.py>`__ | ||
file. | ||
|
||
Note: I have commented cell 3 in this notebook, you should run this cell | ||
whenever you change an acquisition parameter (and for the first time | ||
using the codes). | ||
|
||
Note: Please use the | ||
`requirements <https://github.com/AmirMardan/pinn_fwi/blob/main/requirements.txt>`__ | ||
file (written in the jupyter file) to install the packages with | ||
specified versions to be sure everything works. | ||
|
||
.. code:: console | ||
pip install -r requirements.txt | ||
In this repo, there are four scripts for running FWI. 1. | ||
```pinn_fwi.py`` <https://github.com/AmirMardan/pinn_fwi/blob/main/pinn_fwi.py>`__ | ||
for performing PINN- or PIANN-FWI. 2. | ||
```original_fwi.py`` <https://github.com/AmirMardan/pinn_fwi/blob/main/original_fwi.py>`__ | ||
for running the conventional FWI. 3. | ||
```pinn_for_init.py`` <https://github.com/AmirMardan/pinn_fwi/blob/main/pinn_for_init.py>`__ | ||
for performing PINN- or PIANN-FWI to create an initial model and use | ||
that to perform the conventional FWI. 4. | ||
```pinn_fwi.ipynb`` <https://github.com/AmirMardan/pinn_fwi/blob/main/pinn_fwi.ipynb>`__ | ||
for performing PINN- or PIANN-FWI, but this notebook might not be | ||
updated. | ||
|
||
The result of running this code for 22 shots with 2500 epochs on the | ||
Marmousi model is shown in the following figures. | ||
|
||
|res| For a faster convergence (300 epochs), I considered geophones | ||
around the model and the results are |with_init| where the hybrid method | ||
is using the PIANN-FWI for creating only initial model. | ||
|
||
Reference: | ||
|
||
:: | ||
|
||
@inproceedings{mardan2024piann_eage, | ||
title = {Physics-informed attention-based neural networks for full-waveform inversion}, | ||
author = {Mardan, Amir and Fabien-Ouellet, Gabriel}, | ||
year = {2024}, | ||
booktitle = {85$^{th}$ {EAGE} Annual Conference \& Exhibition}, | ||
publisher = {European Association of Geoscientists \& Engineers}, | ||
pages = {1-5}, | ||
doi = {} | ||
} | ||
|
||
.. |res| image:: /readme_files/marmousi_clean.png | ||
.. |with_init| image:: /readme_files/image2024_marmousi_clean.png |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
tools module | ||
============ | ||
|
||
.. automodule:: tools | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
torchfwi module | ||
=============== | ||
|
||
.. automodule:: torchfwi | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
train module | ||
============ | ||
|
||
.. automodule:: train | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
utils module | ||
============ | ||
|
||
.. automodule:: utils | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
/* | ||
* _sphinx_javascript_frameworks_compat.js | ||
* ~~~~~~~~~~ | ||
* | ||
* Compatability shim for jQuery and underscores.js. | ||
* | ||
* WILL BE REMOVED IN Sphinx 6.0 | ||
* xref RemovedInSphinx60Warning | ||
* | ||
*/ | ||
|
||
/** | ||
* select a different prefix for underscore | ||
*/ | ||
$u = _.noConflict(); | ||
|
||
|
||
/** | ||
* small helper function to urldecode strings | ||
* | ||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | ||
*/ | ||
jQuery.urldecode = function(x) { | ||
if (!x) { | ||
return x | ||
} | ||
return decodeURIComponent(x.replace(/\+/g, ' ')); | ||
}; | ||
|
||
/** | ||
* small helper function to urlencode strings | ||
*/ | ||
jQuery.urlencode = encodeURIComponent; | ||
|
||
/** | ||
* This function returns the parsed url parameters of the | ||
* current request. Multiple values per key are supported, | ||
* it will always return arrays of strings for the value parts. | ||
*/ | ||
jQuery.getQueryParameters = function(s) { | ||
if (typeof s === 'undefined') | ||
s = document.location.search; | ||
var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
var result = {}; | ||
for (var i = 0; i < parts.length; i++) { | ||
var tmp = parts[i].split('=', 2); | ||
var key = jQuery.urldecode(tmp[0]); | ||
var value = jQuery.urldecode(tmp[1]); | ||
if (key in result) | ||
result[key].push(value); | ||
else | ||
result[key] = [value]; | ||
} | ||
return result; | ||
}; | ||
|
||
/** | ||
* highlight a given string on a jquery object by wrapping it in | ||
* span elements with the given class name. | ||
*/ | ||
jQuery.fn.highlightText = function(text, className) { | ||
function highlight(node, addItems) { | ||
if (node.nodeType === 3) { | ||
var val = node.nodeValue; | ||
var pos = val.toLowerCase().indexOf(text); | ||
if (pos >= 0 && | ||
!jQuery(node.parentNode).hasClass(className) && | ||
!jQuery(node.parentNode).hasClass("nohighlight")) { | ||
var span; | ||
var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); | ||
if (isInSVG) { | ||
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); | ||
} else { | ||
span = document.createElement("span"); | ||
span.className = className; | ||
} | ||
span.appendChild(document.createTextNode(val.substr(pos, text.length))); | ||
node.parentNode.insertBefore(span, node.parentNode.insertBefore( | ||
document.createTextNode(val.substr(pos + text.length)), | ||
node.nextSibling)); | ||
node.nodeValue = val.substr(0, pos); | ||
if (isInSVG) { | ||
var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
var bbox = node.parentElement.getBBox(); | ||
rect.x.baseVal.value = bbox.x; | ||
rect.y.baseVal.value = bbox.y; | ||
rect.width.baseVal.value = bbox.width; | ||
rect.height.baseVal.value = bbox.height; | ||
rect.setAttribute('class', className); | ||
addItems.push({ | ||
"parent": node.parentNode, | ||
"target": rect}); | ||
} | ||
} | ||
} | ||
else if (!jQuery(node).is("button, select, textarea")) { | ||
jQuery.each(node.childNodes, function() { | ||
highlight(this, addItems); | ||
}); | ||
} | ||
} | ||
var addItems = []; | ||
var result = this.each(function() { | ||
highlight(this, addItems); | ||
}); | ||
for (var i = 0; i < addItems.length; ++i) { | ||
jQuery(addItems[i].parent).before(addItems[i].target); | ||
} | ||
return result; | ||
}; | ||
|
||
/* | ||
* backward compatibility for jQuery.browser | ||
* This will be supported until firefox bug is fixed. | ||
*/ | ||
if (!jQuery.browser) { | ||
jQuery.uaMatch = function(ua) { | ||
ua = ua.toLowerCase(); | ||
|
||
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
/(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
/(msie) ([\w.]+)/.exec(ua) || | ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
[]; | ||
|
||
return { | ||
browser: match[ 1 ] || "", | ||
version: match[ 2 ] || "0" | ||
}; | ||
}; | ||
jQuery.browser = {}; | ||
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
} |
Oops, something went wrong.