Models
Generating the models
There are various inbuild capabilities to generate the models, viz.
- Simple layerd model
- Reading from segy model
- Drawing an arbitrary model
- Previously saved models
Note: Different rheologies have different requirements therefore it is mandatory to provide the respective parameters. A concise list is provided following.
Rheology | Requirement |
---|---|
scalar | VP |
acoustic | VP, RHO |
elastic | VP, VS, RHO |
viscoacoustic | VP, RHO, QP |
viscoelastic | VP, VS, RHO, QP, QS |
Simple Layered Model
The function "FDWAVE_MODEL_LAYERS" can create a model consisting of 'n' horizontal layers.
Complete Syntax|
FDwave_model_layers('WFP',path,'WAVE_TYPE',options,'DX',value,'DZ',value,'THICKNESS',value,'HV_RATIO',value,'VP',value,'VS',value,'RHO',value,'QP',value,'QS',value,'PlotON',option )
Description of parameters|
Parameter | Type | Description |
---|---|---|
WFP | str | Path to working folder |
RHEOLOGY/RHEO | str | Type of rheology used |
DX, DZ | num | Grid size in horizontal and vertical direction in meters |
HV_RATIO/HVR | num | To determine length along horizontal axis, X=HVR*Y. |
THICKNESS | num,array | Thickness of each layer in form of vector |
VP, VS | num,array | Velocity of P and S wave in form of vector |
RHO | num,array | Density of medium in form of vector |
QP, QS | num,array | Attenutation of P and S value in form of vector |
PlotON | str | 'y'/'n' for plotting |
VERBOSE | str | 'y'/'n' for verbose mode on. |
Example 1: Homogenous layer model for different rheologies
thick = 500 ;
vp = 2500 ;
vs = 2000 ;
rho= 1900 ;
qp = 80 ;
qs = 50 ;
FDwave_model_layers('WFP',wf_path,'Rheo','scalar','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','acoustic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','Elastic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','ViscoAcoustic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'RHO',rho,'Qp',qp,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','ViscoElastic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'Qp',qp,'Qs',qs,'PlotON','y');
Example 2: Layered model for different Rheologies.
Nlayer=10;
thick = round(100*rand(1,Nlayer),0);
vp = 1500 + round(500*rand(1,Nlayer),0);
vs = 1300 + round(300*rand(1,Nlayer),0);
rho= 1100 + round(100*rand(1,Nlayer),0);
qp = 80 + round(20*rand(1,Nlayer),0);
qs = 50 + round(20*rand(1,Nlayer),0);
FDwave_model_layers('WFP',wf_path,'Rheo','scalar','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','acoustic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','Elastic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','ViscoAcoustic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'RHO',rho,'Qp',qp,'PlotON','y');
FDwave_model_layers('WFP',wf_path,'Rheo','ViscoElastic','DX',5,'DZ',5,'THICKNESS',thick,...
'HV_RATIO',1,'VP',vp,'VS',vs,'RHO',rho,'Qp',qp,'Qs',qs,'PlotON','y');
Example 3: Internally saved model (Ref.KLR)
Reading through the SEGY file
The function "FDwave_MODEL_READ_SEGY" is used to load the models provided in segy file format.
Syntax:
model_read_segy('WFP',path,'M_NAME',name,'Rheology',options,'CROP',
[X1,Z1,X2,Z2], 'GRID_SIZE_OLD',[dx,dz],'GRID_SIZE_NEW',[dx,dz], 'PlotON',option )
Parameter | Type | Description |
---|---|---|
WFP | str | Path to working folder |
M_NAME | str | Name of the model (string) |
Rheology/Rheo | str | Options are- scalar, acoustic, elastic, viscoacoustic, viscoelastic |
CROP | [float,float,float,float,] | [X1,Z1, X2,Z2], Select the region using left upper (X1,Z1) and right lower (X2,Z2) coordinates |
GRID_SIZE_OLD | [float,float,] | [dx,dz] |
GRID_SIZE_NEW | [float,float,] | [dx,dz] |
PlotON | str | 'y'/'n' |
Example: Here we have used the Marmousi model which is provided in segyfile format on a fine scaled, i.e., dx=dz=1.5m. This functin also provides option to CROP and INTERPOLATE model to a coarse/finer model
FDwave_model_readsegy('WAVE_TYPE','elastic','CROP_MODEL',[7000,600,15000,4200],...
'GRID_SIZE_OLD',[1.5,1.5],'GRID_SIZE_NEW',[12.5,12.5], 'PlotON','y' )
Building a model by inserting arbitrary shapes.
This part is still in developement phase.
This model primarily uses two commands: first is for initializing the model "FDwave_model_build_init", and the second is to insert the shapes "FDwave_model_build_shape_arbitrary". The shapes is defined by the coordinates as following.
Example 1: A model with corner.
FDwave_model_build_init('rheology','Elastic','nx',400,'nz',200,'dx',5,'dz',5)
FDwave_model_plot('wfp',wfp)
CVec={[1,200],[200,200],[200,100],[1,100]};
FDwave_model_build_shape_arbitrary('coordinates',CVec,'Vp',2500,'Vs',2000,'Density',1600);
model_plot('wfp',wfp)
Example 1: A model with dipping layers with a wedge.
FDwave_model_build_init('rheo','Elastic','nx',400,'dx',5,'vp',2000, 'vs',1800,'Density',1600)
% insert: a wedge
CVec={[200,200],[400,200],[400,300],[300,300],[200,200]};
FDwave_model_build_shape_arbitrary('coordinates',CVec,'vp',2800,'vs',2200,'Density',2000,'plotON','y');
% insert: a dipping layer
CVec={[1,250],[400,300],[400,400],[200,400],[1,300],[1,250]};
FDwave_model_build_shape_arbitrary('coordinates',CVec,'vp',2500,'vs',1900,'Density',1700,'plotON','y');
% insert: fill rest of part, a triangel
CVec={[1,300],[200,400],[1,400],[1,300]};
FDwave_model_build_shape_arbitrary('coordinates',CVec,'vp',3100,'vs',2500,'Density',2100,'plotON','y');