plugin_src/green/green_elastic.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "crusde_api.h"

Include dependency graph for green_elastic.c:

Include dependency graph

Functions

const char * get_name ()
const char * get_version ()
const char * get_authors ()
const PluginCategory get_category ()
const char * get_description ()
void register_parameter ()
 Register parameters this Kernel claims from the input.
int register_output_fields ()
 Register output fields for spatial directions this Green's function calculates.
void request_plugins ()
void init ()
 Initialization of the convolution. Allocation of memory for inputs and outputs.
void run ()
 Performs the fast convolution.
void clear ()
 Clean-up before this plug-in gets unloaded.
int get_value_at (double **result, int x, int y, int t)
 Returns the Green's Function value at Point(x,y) at time 0.

Variables

double g
 gravity [m/s^2]
double E
 Young's Modulus [GPa].
double nu
 Poisson's ratio [-].
double U_vert_const
 Constant part of the vertical displacement equation.
double U_hori_const
 Constant part of the horizontal displacement equation.
double xx
double yy
double theta
double r
int quadrant
short sin_sign
short cos_sign
int x_pos
int y_pos
int z_pos
double backpack [3]

Detailed Description

Implements the 'elastic halfspace' case as described by Pinel et al (2006) for horizontal and vertical displacement:

\[ G_{z}(r) = \frac{g}{\pi} \frac{(1-\nu ^2)}{E} \frac{1}{r} \]

\[ G_{r}(r) = -\frac{g}{2\pi} \frac{(1+\nu)(1-2\nu)}{E} \frac{1}{r} \]

with $G_{z}(r)$ and $G_{r}(r)$ determining vertical and radial instantaneous displacement at point $r$, respectively.

The sequence in which the functions are called from the main program is as follows:

  1. register_parameter()
  2. init()
  3. get_value_at(int, int, int)
  4. clear()

Function Documentation

void clear  ) 
 

Clean-up before this plug-in gets unloaded.

Yet, there is nothing to free here.

const char* get_authors  ) 
 

const PluginCategory get_category  ) 
 

const char* get_description  ) 
 

const char* get_name  ) 
 

int get_value_at double **  result,
int  x,
int  y,
int  t
 

Returns the Green's Function value at Point(x,y) at time 0.

TODO!

Parameters:
x The x-Coordinate of the wanted value.
y The y-Coordinate of the wanted value.
t The time-Coordinate of the wanted value (set to NO_TIME in non-temporal modelling environment).
Returns:
The value found at Point[t][y][x]

const char* get_version  ) 
 

void init  ) 
 

Initialization of the convolution. Allocation of memory for inputs and outputs.

This function must not be called before register_parameter() unless none of the necessary values depends on parameters provided by the user, which are only set after they have been registered. This function is called some time after register_parameter().

Here U_vert_const and U_hori_const are initialized as follows:

\[ U_{z,const} = \frac{g}{\pi} \frac{(1-\nu ^2)}{E} \]

\[ U_{r, const} = -\frac{g}{2\pi} \frac{(1+\nu)(1-2\nu)}{E} \]

int register_output_fields  ) 
 

Register output fields for spatial directions this Green's function calculates.

This function calls crusde_register_output_field defined in crusde_api.h to register output field in the following order:

  1. x, y, z (horizontal-x, horizontal-y, vertical).

void register_parameter  ) 
 

Register parameters this Kernel claims from the input.

This function calls crusde_register_green_param() defined in crusde_api.h to register references to parameters this Green's function will need to operate properly. In case an XML is used to configure the experiment, the reference to this parameter will be identified by the string passed as second argument to register_green_param().

This function registers the references in the following order:

  1. g, XML config identifier is "g" SI-unit: [m/s^2]
  2. E, XML config identifier is "E" SI-unit: [GPa]
  3. nu XML config identifier is "nu" SI-unit: [-]

See also:
register_green_param()

register_parameter() (temp_plugin.c.tmp)

void request_plugins  ) 
 

empty

void run  ) 
 

Performs the fast convolution.

writes data for actual time step to file


Variable Documentation

double backpack[3]
 

short cos_sign
 

double E
 

Young's Modulus [GPa].

double g
 

gravity [m/s^2]

double nu
 

Poisson's ratio [-].

int quadrant
 

double r
 

short sin_sign
 

double theta
 

double U_hori_const
 

Constant part of the horizontal displacement equation.

double U_vert_const
 

Constant part of the vertical displacement equation.

int x_pos
 

double xx
 

int y_pos
 

double yy
 

int z_pos
 


Generated on Sun Jul 29 08:17:29 2007 for CrusDe by doxygen 1.3.8