Skip to content

Commit

Permalink
WIP: add velocity infrastructure.
Browse files Browse the repository at this point in the history
  • Loading branch information
MFraters committed Oct 13, 2024
1 parent 383a8fc commit b9c1f3f
Show file tree
Hide file tree
Showing 54 changed files with 3,820 additions and 216 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,33 @@
{"model":"oceanic plate", "name":"oceanic plate", "coordinates":[[-1e3,-1e3],[1150e3,-1e3],[1150e3,1e3],[-1e3,1e3]],
"temperature models":[{"model":"plate model", "max depth":95e3, "bottom temperature":1600, "spreading velocity":0.005, "ridge coordinates":[[[100e3,-1e3],[100e3,1e3]]]}],
"composition models":[{"model":"uniform", "compositions":[0], "max depth":10e3},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}]},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"continental plate", "name":"continental plate", "coordinates":[[1150e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[1150e3,1e3]],
"temperature models":[{"model":"linear", "max depth":95e3, "bottom temperature":1600}],
"composition models":[{"model":"uniform", "compositions":[2], "max depth":30e3},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}]},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}],
"velocity models":[{"model":"uniform", "velocity":[-1,0,0]}]
},

{"model":"mantle layer", "name":"upper mantle", "min depth":95e3, "max depth":660e3, "coordinates":[[-1e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[-1e3,1e3]],
"temperature models":[{"model":"linear", "min depth":95e3, "max depth":660e3, "top temperature":1600, "bottom temperature":1820}],
"composition models":[{"model":"uniform", "compositions":[4]}]},
"composition models":[{"model":"uniform", "compositions":[4]}],
"velocity models":[{"model":"uniform", "velocity":[0.5,0,0]}]},

{"model":"mantle layer", "name":"lower mantle", "min depth":660e3, "max depth":1160e3, "coordinates":[[-1e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[-1e3,1e3]],
"temperature models":[{"model":"linear", "min depth":660e3, "max depth":1160e3, "top temperature":1820, "bottom temperature":2000}],
"composition models":[{"model":"uniform", "compositions":[5]}]},
"composition models":[{"model":"uniform", "compositions":[5]}],
"velocity models":[{"model":"uniform", "velocity":[0.25,0,0]}]},

{"model":"subducting plate", "name":"Subducting plate", "coordinates":[[1150e3,-1e3],[1150e3,1e3]], "dip point":[2000e3,0],
"segments":[{"length":200e3, "thickness":[95e3], "angle":[0,45]}, {"length":200e3, "thickness":[95e3], "angle":[45]},
"segments":[{"length":200e3, "thickness":[95e3], "angle":[0,45],"velocity models":[{"model":"uniform", "velocity":[0.75,0,-0.25]}]},
{"length":200e3, "thickness":[95e3], "angle":[45],"velocity models":[{"model":"uniform", "velocity":[0.7,0,-0.7]}]},
{"length":200e3, "thickness":[95e3], "angle":[45,0]}, {"length":100e3, "thickness":[95e3], "angle":[0]}],
"temperature models":[{"model":"plate model", "density":3300, "plate velocity":0.01, "adiabatic heating":false}],
"composition models":[{"model":"uniform", "compositions":[0], "max distance slab top":10e3},
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3 }]}
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3 }],
"velocity models":[{"model":"uniform", "velocity":[0.75,0,0.25]}]}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,29 @@
{"model":"oceanic plate", "name":"oceanic plate", "coordinates":[[-1e3,-1e3],[1150e3,-1e3],[1150e3,1e3],[-1e3,1e3]],
"temperature models":[{"model":"plate model", "max depth":95e3, "spreading velocity":0.005, "ridge coordinates":[[[100e3,-1e3],[100e3,1e3]]]}],
"composition models":[{"model":"uniform", "compositions":[0], "max depth":10e3},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}]},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"continental plate", "name":"continental plate", "coordinates":[[1150e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[1150e3,1e3]],
"temperature models":[{"model":"linear", "max depth":95e3}],
"composition models":[{"model":"uniform", "compositions":[2], "max depth":30e3},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}]},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"mantle layer", "name":"upper mantle", "min depth":95e3, "max depth":660e3, "coordinates":[[-1e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[-1e3,1e3]],
"composition models":[{"model":"uniform", "compositions":[4]}]},
"composition models":[{"model":"uniform", "compositions":[4]}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"mantle layer", "name":"lower mantle", "min depth":660e3, "max depth":1160e3, "coordinates":[[-1e3,-1e3],[2001e3,-1e3],[2001e3,1e3],[-1e3,1e3]],
"composition models":[{"model":"uniform", "compositions":[5]}]},
"composition models":[{"model":"uniform", "compositions":[5]}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"subducting plate", "name":"Subducting plate", "coordinates":[[1150e3,-1e3],[1150e3,1e3]], "dip point":[2000e3,0],
"segments":[{"length":200e3, "thickness":[95e3], "angle":[0,45]}, {"length":200e3, "thickness":[95e3], "angle":[45]},
{"length":200e3, "thickness":[95e3], "angle":[45,0]}, {"length":100e3, "thickness":[95e3], "angle":[0]}],
"temperature models":[{"model":"plate model", "density":3300, "plate velocity":0.01}],
"composition models":[{"model":"uniform", "compositions":[0], "max distance slab top":10e3},
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3 }]}
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3 }],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,31 @@
{"model":"oceanic plate", "name":"oceanic plate", "coordinates":[[-1,-1],[11.5,-1],[11.5,1],[-1,1]],
"temperature models":[{"model":"plate model", "max depth":95e3, "bottom temperature":1600, "spreading velocity":0.005, "ridge coordinates":[[[1,-1],[1,1]]]}],
"composition models":[{"model":"uniform", "compositions":[0], "max depth":10e3},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}]},
{"model":"uniform", "compositions":[1], "min depth":10e3, "max depth":95e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"continental plate", "name":"continental plate", "coordinates":[[11.5,-1],[21,-1],[21,1],[11.5,1]],
"temperature models":[{"model":"linear", "max depth":95e3, "bottom temperature":1600}],
"composition models":[{"model":"uniform", "compositions":[2], "max depth":30e3},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}]},
{"model":"uniform", "compositions":[3], "min depth":30e3, "max depth":65e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"mantle layer", "name":"upper mantle", "min depth":95e3, "max depth":660e3, "coordinates":[[-1,-1],[21,-1],[21,1],[-1,1]],
"temperature models":[{"model":"linear", "min depth":95e3, "max depth":660e3, "top temperature":1600, "bottom temperature":1820}],
"composition models":[{"model":"uniform", "compositions":[4]}]},
"composition models":[{"model":"uniform", "compositions":[4]}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"mantle layer", "name":"lower mantle", "min depth":660e3, "max depth":1160e3, "coordinates":[[-1,-1],[21,-1],[21,1],[-1,1]],
"temperature models":[{"model":"linear", "min depth":660e3, "max depth":1160e3, "top temperature":1820, "bottom temperature":2000}],
"composition models":[{"model":"uniform", "compositions":[5]}]},
"composition models":[{"model":"uniform", "compositions":[5]}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]},

{"model":"subducting plate", "name":"Subducting plate", "coordinates":[[11.5,-1],[11.5,1]], "dip point":[20,0],
"segments":[{"length":200e3, "thickness":[95e3], "angle":[0,45]}, {"length":200e3, "thickness":[95e3], "angle":[45]},
{"length":200e3, "thickness":[95e3], "angle":[45,0]}, {"length":100e3, "thickness":[95e3], "angle":[0]}],
"temperature models":[{"model":"plate model", "density":3300, "plate velocity":0.01, "adiabatic heating":false}],
"composition models":[{"model":"uniform", "compositions":[0], "max distance slab top":10e3},
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3}]}
{"model":"uniform", "compositions":[1], "min distance slab top":10e3, "max distance slab top":95e3}],
"velocity models":[{"model":"uniform", "velocity":[1,0,0]}]}
]
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# output variables
grid_type = cartesian
dim = 3
compositions = 0
compositions = 3

# domain of the grid
x_min = 0e3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,26 @@
"features":
[
// defining an oceanic plate for the North and South American plate
{"model":"oceanic plate", "name":"NS American plate",
"coordinates":[[1700e3,0],[1700e3,300e3],[1606e3,650e3],
[1350e3,906e3],[1000e3,1000e3],[-1e3,1000e3],
[-1e3,1501e3],[2501e3,1501e3],[2501e3,-501e3],
[-1e3,-501e3],[-1e3,-50e3],[2000e3,-50e3],
[2000e3,0e3]],
"temperature models":[{"model":"linear", "max depth":100e3}],
"composition models":[{"model":"uniform", "compositions":[0],
"max depth":30e3}]},

// Defining an oceanic plate for the Caribbean plate
{"model":"oceanic plate", "name":"Caribbean plate",
"coordinates":[[1700e3,300e3],[1689e3,422e3],[1658e3,539e3],
[1606e3,650e3],[1536e3,749e3],[1450e3,836e3],
[1350e3,906e3],[1239e3,958e3],[1122e3,989e3],
[1000e3,1000e3],[650e3,1000e3],[-1e3,1000e3],
[-1e3,0e3],[1700e3,0e3]],
"temperature models":[{"model":"linear", "max depth":100e3}],
"composition models":[{"model":"uniform", "compositions":[1],
"max depth":30e3}]},
//{"model":"oceanic plate", "name":"NS American plate",
// "coordinates":[[1700e3,0],[1700e3,300e3],[1606e3,650e3],
// [1350e3,906e3],[1000e3,1000e3],[-1e3,1000e3],
// [-1e3,1501e3],[2501e3,1501e3],[2501e3,-501e3],
// [-1e3,-501e3],[-1e3,-50e3],[2000e3,-50e3],
// [2000e3,0e3]],
// "temperature models":[{"model":"linear", "max depth":100e3}],
// "composition models":[{"model":"uniform", "compositions":[0],
// "max depth":30e3}]},
//
//// Defining an oceanic plate for the Caribbean plate
//{"model":"oceanic plate", "name":"Caribbean plate",
// "coordinates":[[1700e3,300e3],[1689e3,422e3],[1658e3,539e3],
// [1606e3,650e3],[1536e3,749e3],[1450e3,836e3],
// [1350e3,906e3],[1239e3,958e3],[1122e3,989e3],
// [1000e3,1000e3],[650e3,1000e3],[-1e3,1000e3],
// [-1e3,0e3],[1700e3,0e3]],
// "temperature models":[{"model":"linear", "max depth":100e3}],
// "composition models":[{"model":"uniform", "compositions":[1],
// "max depth":30e3}]},

// Defining a continental plate for the weak zone
{"model":"continental plate", "name":"Caribbean weak zone",
Expand All @@ -39,68 +39,69 @@
"composition models":[{"model":"uniform", "compositions":[2],
"max depth":30e3},
{"model":"uniform", "compositions":[3],
"min depth":30e3}]},
"min depth":30e3}],
"velocity models":[{"model":"uniform","velocity":[1,2,3]}]}//,

// Defining a mantle layer for the lower mantle
{"model":"mantle layer", "name":"660", "min depth":660e3,
"coordinates":[[-1e3,-500e3],[-501e3,2500e3],[2501e3,2500e3],
[2501e3,-501e3]],
"composition models":[{"model":"uniform", "compositions":[4]}]},

// Defining a subducting plate for the Lesser Antilles slab
{"model":"subducting plate", "name":"Lesser Antilles slab",
"coordinates":[[1700e3,0],[1700e3,300e3],[1606e3,650e3],
[1350e3,906e3],[1000e3,1000e3],[650e3,1000e3]],
"dip point":[-1,-1],
"min depth":0, "max depth":660e3,
"segments":
[
{"length":300e3, "thickness":[100e3], "angle":[0,50]},
{"length":371e3, "thickness":[100e3], "angle":[50]},
{"length":275e3, "thickness":[100e3], "angle":[50,0]},
{"length":0e3, "thickness":[100e3], "angle":[0]}
],
"sections":
[
{"coorindate":"0",
"segments":
[
{"length":300e3, "thickness":[100e3], "angle":[0,25]},
{"length":371e3, "thickness":[100e3], "angle":[50]},
{"length":300e3, "thickness":[100e3], "angle":[50,0]},
{"length":50, "thickness":[100e3], "angle":[0]}
]
},
{"coorindate":"5",
"segments":
[
{"length":300e3, "thickness":[100e3], "angle":[0,25]},
{"length":371e3, "thickness":[100e3], "angle":[50]},
{"length":50e3, "thickness":[100e3], "angle":[50,0]},
{"length":0, "thickness":[100e3], "angle":[0]}
]
}
],
"temperature models":
[
{"model":"plate model", "density":3300, "plate velocity":0.0144,
"thermal conductivity":2.5, "thermal expansion coefficient":2e-5 }
],
"composition models":
[
{"model":"uniform","compositions":[0], "min distance slab top":30e3}
]
},
//{"model":"mantle layer", "name":"660", "min depth":660e3,
// "coordinates":[[-1e3,-500e3],[-501e3,2500e3],[2501e3,2500e3],
// [2501e3,-501e3]],
// "composition models":[{"model":"uniform", "compositions":[4]}]},
//
//// Defining a subducting plate for the Lesser Antilles slab
//{"model":"subducting plate", "name":"Lesser Antilles slab",
// "coordinates":[[1700e3,0],[1700e3,300e3],[1606e3,650e3],
// [1350e3,906e3],[1000e3,1000e3],[650e3,1000e3]],
// "dip point":[-1,-1],
// "min depth":0, "max depth":660e3,
// "segments":
// [
// {"length":300e3, "thickness":[100e3], "angle":[0,50]},
// {"length":371e3, "thickness":[100e3], "angle":[50]},
// {"length":275e3, "thickness":[100e3], "angle":[50,0]},
// {"length":0e3, "thickness":[100e3], "angle":[0]}
// ],
// "sections":
// [
// {"coorindate":"0",
// "segments":
// [
// {"length":300e3, "thickness":[100e3], "angle":[0,25]},
// {"length":371e3, "thickness":[100e3], "angle":[50]},
// {"length":300e3, "thickness":[100e3], "angle":[50,0]},
// {"length":50, "thickness":[100e3], "angle":[0]}
// ]
// },
// {"coorindate":"5",
// "segments":
// [
// {"length":300e3, "thickness":[100e3], "angle":[0,25]},
// {"length":371e3, "thickness":[100e3], "angle":[50]},
// {"length":50e3, "thickness":[100e3], "angle":[50,0]},
// {"length":0, "thickness":[100e3], "angle":[0]}
// ]
// }
// ],
// "temperature models":
// [
// {"model":"plate model", "density":3300, "plate velocity":0.0144,
// "thermal conductivity":2.5, "thermal expansion coefficient":2e-5 }
// ],
// "composition models":
// [
// {"model":"uniform","compositions":[0], "min distance slab top":30e3}
// ]
//},

// Defining a continental plate for the weakzone between the Caribbean and
// South America
{"model":"continental plate","name":"South Weakzone",
"coordinates":[[-1e3,0e3],[-1e3,-50e3],[2000e3,-50e3],[2000e3,0e3]],
"temperature models":[{"model":"linear", "max depth":100e3}],
"composition models":
[
{"model":"uniform","compositions":[2], "max depth":30e3},
{"model":"uniform", "compositions":[3], "min depth":30e3}]}
//{"model":"continental plate","name":"South Weakzone",
// "coordinates":[[-1e3,0e3],[-1e3,-50e3],[2000e3,-50e3],[2000e3,0e3]],
// "temperature models":[{"model":"linear", "max depth":100e3}],
// "composition models":
// [
// {"model":"uniform","compositions":[2], "max depth":30e3},
// {"model":"uniform", "compositions":[3], "min depth":30e3}]}

]
}
12 changes: 12 additions & 0 deletions include/world_builder/features/continental_plate.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ namespace WorldBuilder
{
class Interface;
} // namespace Temperature
namespace Velocity
{
class Interface;
} // namespace Temperature
} // namespace ContinentalPlateModels

/**
Expand Down Expand Up @@ -147,6 +151,14 @@ namespace WorldBuilder
*/
std::vector<std::unique_ptr<Features::ContinentalPlateModels::Grains::Interface> > grains_models;

/**
* A vector containing all the pointers to the velocity models. This vector is
* responsible for the features and has ownership over them. Therefore
* unique pointers are used.
* @see Features
*/
std::vector<std::unique_ptr<Features::ContinentalPlateModels::Velocity::Interface> > velocity_models;


double min_depth;
Objects::Surface min_depth_surface;
Expand Down
Loading

0 comments on commit b9c1f3f

Please sign in to comment.