Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Pseudo-Acoustic TTI Solvers #3008

Open
wants to merge 90 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
70be863
Acoustic VTI Density
Bertbk Oct 30, 2023
a4a0db7
VTI parameter epsilon, delta and f to be mediumEpsilon, mediumDelta, …
Bertbk Oct 30, 2023
851ab59
vti: sigma input param instead of f ; variables prefixed by 'vti'
Bertbk Oct 30, 2023
a5db176
vti input file: change sigma default value
Bertbk Oct 31, 2023
2706417
Set vti Sigma default value to 0.75 to avoid division by 0
Bertbk Nov 8, 2023
237ce43
input file for vtiDensity
Bertbk Nov 9, 2023
4ffb7aa
VTI optimize damping
Bertbk Nov 9, 2023
db4becd
VTIDensity remove computeAllSeismoTraces
Bertbk Nov 10, 2023
aecd74b
VTIDensity update to fit latest commits
Bertbk Nov 10, 2023
567ab7d
restore geosx config
Bertbk Nov 10, 2023
775c0e8
cosmetic
Bertbk Nov 10, 2023
1195cdd
remove tabulations
Bertbk Nov 10, 2023
051fb7b
uncrustify
Bertbk Nov 13, 2023
75a39be
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Nov 28, 2023
f20d3c7
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Dec 12, 2023
9d60de5
Add catalog function
Bertbk Dec 12, 2023
cfc5522
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Jan 8, 2024
bca4ae9
fix error
Bertbk Jan 8, 2024
f8ac409
Add density to Fletcher equation and modify bottom ABC for VTI
Bertbk Jan 16, 2024
bd699d7
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Jan 16, 2024
423244f
MediumEpsilon and MediumDelta -> AcousticEpsilon AcousticDela
Bertbk Jan 16, 2024
f3c0938
VTI density: MediumEpsilon and MediumDelta -> AcousticEpsilon Acousti…
Bertbk Jan 16, 2024
be0acf5
VTI: MediumXXX -> AcousticXXX
Bertbk Jan 17, 2024
b35870b
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Jan 17, 2024
448f049
Update VTI input files
Bertbk Jan 19, 2024
23a6921
Solveur Fletcher No Density for testing only
Bertbk Jan 19, 2024
03f21c9
unit test for VTI solvers
Bertbk Jan 22, 2024
def81ad
VTI Zhang: security check on delta and epsilon. VTI (all): precompute…
Bertbk Jan 23, 2024
86eda90
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Jan 30, 2024
ea3395a
uncrustify
Bertbk Jan 30, 2024
05c6731
Remove Solver FletcherNoDensity
Bertbk Feb 6, 2024
02c383d
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Feb 8, 2024
4b56d1f
update vti solvers to fit new optimization
Bertbk Feb 8, 2024
eceb3d1
VTI solvers doc .rst
Bertbk Feb 7, 2024
474ff86
uncrustify
Bertbk Feb 8, 2024
74389b7
VTI schema
Bertbk Feb 9, 2024
53355c1
update schema
Bertbk Feb 9, 2024
27f71ce
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Feb 20, 2024
d14c639
update vti for wave solver refactorization
Bertbk Feb 20, 2024
cd89327
VTI update unit test
Bertbk Feb 9, 2024
46e3b41
VTI fix unit test
Bertbk Feb 9, 2024
df51474
VTIZhang fix size receivers
Bertbk Feb 9, 2024
b05396c
VTIZhang fix unit test
Bertbk Feb 9, 2024
73591ce
fix unit test wavefield path
Bertbk Feb 21, 2024
c1ecccf
fix unit test bad merge
Bertbk Feb 21, 2024
78fc2b7
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Feb 26, 2024
87de787
remove old schema .rst vti files
Bertbk Feb 26, 2024
7a215a1
New schema .rst vti files for the 2 solvers
Bertbk Feb 26, 2024
48b5cdb
uncrustify
Bertbk Feb 26, 2024
7cc077e
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Feb 27, 2024
c7a501b
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Mar 12, 2024
31bea97
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Mar 14, 2024
9d6cb30
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Mar 21, 2024
ed47445
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Apr 8, 2024
a5f5c4c
Merge branch 'develop' into laptopVTI
Bertbk Apr 11, 2024
ff420f1
fix abs -> std::fabs
Bertbk Apr 11, 2024
a78a451
fix input file acoustic vti zhang
Bertbk Apr 12, 2024
e69002f
VTI solvers updated to fit new structure
Bertbk Apr 15, 2024
efc8b72
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Apr 19, 2024
1223027
cleaning
Bertbk Apr 19, 2024
4394ed7
uncrustify
Bertbk Apr 19, 2024
d531c0a
uncrustify
Bertbk Apr 19, 2024
d665729
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Apr 22, 2024
fe26769
delete file
Bertbk Apr 25, 2024
26cb0b6
ats file
Bertbk Apr 25, 2024
4e92503
Missing include
Bertbk Apr 25, 2024
7f52c7b
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Apr 26, 2024
7e12b7f
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk Apr 30, 2024
919a2ed
Merge branch 'develop' into newvti
Bertbk May 3, 2024
a749bcd
fix path
Bertbk May 4, 2024
e6971e8
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk May 6, 2024
46d2483
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk May 13, 2024
af375f3
Acoustic VTI: seismo=(p+q)/2
Bertbk May 15, 2024
05d9902
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk May 23, 2024
d163f53
uncrustify
Bertbk May 30, 2024
2ac8376
Typo
Bertbk May 23, 2024
7f4e77d
Merge branch 'develop' into feature/Bertbk/AcousticVTIDensity
Bertbk May 30, 2024
dbc4753
TTI Zhang
Bertbk May 23, 2024
5b5bb31
fix TTI Zhang
Bertbk May 23, 2024
d6ab824
TTI Fletcher
Bertbk May 23, 2024
b982136
Typo
Bertbk May 23, 2024
ba76b27
input files for tti
Bertbk May 23, 2024
1df2fe3
schema + doc
Bertbk May 23, 2024
1dbdaba
unit test
Bertbk May 23, 2024
efa2f6b
uncrustify
Bertbk May 23, 2024
7ef529d
uncrustify
Bertbk May 29, 2024
e524eda
fix path
Bertbk May 29, 2024
0b97f9a
fix unused variable
Bertbk May 29, 2024
137714c
fix unit test
Bertbk May 29, 2024
932c2df
TTI unit test
Bertbk May 29, 2024
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
12 changes: 10 additions & 2 deletions inputFiles/wavePropagation/AcousticSEM.ats
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,17 @@ decks = [
check_step=40,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="acous3D_vti_smoke",
name="acous3D_vtiFletcher_smoke",
description=
'Acoustic wave solver, first-order FE, vertical transverse isotropic',
'Acoustic wave solver, first-order FE, vertical transverse isotropic with Fletcher's equation',
partitions=((1, 1, 1), (2, 2, 2)),
restart_step=100,
check_step=200,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="acous3D_vtiZhang_smoke",
description=
'Acoustic wave solver, first-order FE, vertical transverse isotropic with Zhang's equations',
partitions=((1, 1, 1), (2, 2, 2)),
restart_step=100,
check_step=200,
Expand Down
258 changes: 258 additions & 0 deletions inputFiles/wavePropagation/acous3D_ttiFletcher_smoke.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
<?xml version="1.0" ?>
<Problem>

<!-- hexahedral mesh generated internally by GEOSX -->
<Mesh>
<InternalMesh
name="mesh"
elementTypes="{ C3D8 }"
xCoords="{ 0,101}"
yCoords="{ 0,101 }"
zCoords="{ 0,101 }"
nx="{ 5 }"
ny="{ 5 }"
nz="{ 5 }"
cellBlockNames="{ cb }"/>
</Mesh>

<Geometry>
<Box
name="zpos"
xMin="{ -0.1, -0.1, 100.9}"
xMax="{ 101.1, 101.1, 101.1}"/>
<Box
name="zneg"
xMin="{ -0.1, -0.1, -0.1}"
xMax="{ 101.1, 101.1, 0.1}"/>
<Box
name="xpos"
xMin="{ 100.9, -0.1, -0.1}"
xMax="{ 101.1, 101.1, 101.1}"/>
<Box
name="xneg"
xMin="{ -0.1, -0.1, -0.1}"
xMax="{ 0.1, 101.1, 101.1}"/>
<Box
name="ypos"
xMin="{ -0.1, 100.9, -0.1}"
xMax="{ 101.1, 101.1, 101.1}"/>
<Box
name="yneg"
xMin="{ -0.1, -0.1, -0.1}"
xMax="{ 101.1, 0.1, 101.1}"/>
</Geometry>

<!-- The free surface condition the domain -->
<FieldSpecifications>
<FieldSpecification
name="zposFreeSurface"
objectPath="faceManager"
fieldName="AcousticFreeSurface"
scale="0.0"
setNames="{ zpos }"/>
<FieldSpecification
name="znegBottomSurface"
objectPath="faceManager"
fieldName="AcousticBottomSurface"
scale="0.0"
setNames="{ zneg }"/>
<FieldSpecification
name="LateralFreeSurface"
objectPath="faceManager"
fieldName="AcousticLateralSurface"
scale="0.0"
setNames="{ xpos, xneg, ypos, yneg }"/>
<FieldSpecification
name="acousticEpsilon"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticEpsilon"
scale="0.24"
setNames="{ all }"/>
<FieldSpecification
name="acousticDelta"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticDelta"
scale="0.1"
setNames="{ all }"/>
<FieldSpecification
name="acousticSigma"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticSigma"
scale="0.75"
setNames="{ all }"/>
<FieldSpecification
name="acousticDipX"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticDipx"
scale="1"
setNames="{ all }"/>
<FieldSpecification
name="acousticDipY"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticDipy"
scale="1"
setNames="{ all }"/>
</FieldSpecifications>
<Solvers>
<!-- define the solver -->
<!-- define the source coordinates -->
<!-- define the time source frequency -->
<!-- define the receiver coordinates -->
<AcousticTTIFletcherSEM
name="acousticTTIFletcherSolver"
cflFactor="0.25"
discretization="FE1"
targetRegions="{ Region }"
sourceCoordinates="{ { 55, 55, 55 },
{ 10, 10, 14 } }"
timeSourceFrequency="5.0"
receiverCoordinates="{ { 5, 5, 11 },
{ 5, 50, 11 },
{ 5, 95, 11 } }"/>
</Solvers>

<NumericalMethods>
<FiniteElements>
<FiniteElementSpace
name="FE1"
order="1"
formulation="SEM"/>
</FiniteElements>
</NumericalMethods>

<ElementRegions>
<CellElementRegion
name="Region"
cellBlocks="{ cb }"
materialList="{ nullModel }"/>
</ElementRegions>

<Constitutive>
<NullModel
name="nullModel"/>
</Constitutive>

<FieldSpecifications>
<!-- 1) The initial pressure field -->
<FieldSpecification
name="initialPressure_n"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="pressure_p_n"
scale="0.0"/>

<FieldSpecification
name="initialPressure_p_nm1"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="pressure_p_nm1"
scale="0.0"/>

<FieldSpecification
name="initialPressure_q_n"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="pressure_q_n"
scale="0.0"/>

<FieldSpecification
name="initialPressure_q_nm1"
initialCondition="1"
setNames="{ all }"
objectPath="nodeManager"
fieldName="pressure_q_nm1"
scale="0.0"/>

<!-- 2) The velocity and density in the domain -->
<FieldSpecification
name="cellVelocity"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticVelocity"
scale="1500"
setNames="{ all }"/>

<FieldSpecification
name="cellDensity"
initialCondition="1"
objectPath="ElementRegions/Region/cb"
fieldName="acousticDensity"
scale="1.5"
setNames="{ all }"/>

<!-- 3) The free surface condition the domain -->
<FieldSpecification
name="zposFreeSurface"
objectPath="faceManager"
fieldName="FreeSurface"
scale="0.0"
setNames="{ zpos }"/>
</FieldSpecifications>

<Events
maxTime="0.20">
<!-- trigger the application of the solver -->
<!-- control the timestepping here with forceDt -->
<PeriodicEvent
name="solverApplications"
forceDt="0.001"
target="/Solvers/acousticTTIFletcherSolver"/>

<!-- generate an output that can be read from VTK -->
<PeriodicEvent
name="vtk"
timeFrequency="0.001"
targetExactTimestep="0"
target="/Outputs/vtkOutput"/>

<!-- two events to output pressure in an hdf5 file -->
<PeriodicEvent
name="timeHistoryCollection"
timeFrequency="0.001"
target="/Tasks/pressureCollection"/>

<PeriodicEvent
name="timeHistoryOutput"
timeFrequency="0.001"
targetExactTimestep="0"
target="/Outputs/timeHistoryOutput"/>

<PeriodicEvent
name="restarts"
timeFrequency="0.10"
targetExactTimestep="0"
target="/Outputs/restartOutput"/>
</Events>

<!-- collect the pressure values at the nodes -->
<Tasks>
<PackCollection
name="pressureCollection"
objectPath="/Problem/domain/MeshBodies/mesh/meshLevels/FE1/nodeManager"
fieldName="pressure_p_np1"/>
</Tasks>

<Outputs>
<!-- output all the mesh values registered with a plot level LEVEL_0, LEVEL_1, LEVEL_2, LEVEL_3 -->
<VTK
name="vtkOutput"
plotLevel="3"/>

<!-- output the pressure values to a file named pressure_history.hdf5 -->
<TimeHistory
name="timeHistoryOutput"
sources="{ /Tasks/pressureCollection }"
filename="pressure_history"/>

<Restart
name="restartOutput"/>
</Outputs>
</Problem>
Loading
Loading