Models

Generating the models

There are various inbuild capabilities to generate the models, viz.

  1. Simple layerd model
  2. Reading from segy model
  3. Drawing an arbitrary model
  4. 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)

FDwave_model_killari(wf_path,'el')

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');

Derived model