gridding rules for curves
[surfit gridding rules]


Functions

bool surfit::curve (REAL value, const char *curv_name_or_position="0")
bool surfit::curve_add (REAL value, REAL weight=1, const char *curv_name_or_position="0")
bool surfit::curve_leq (REAL value, const char *curv_name_or_position="0", REAL mult=0.001)
bool surfit::curve_geq (REAL value, const char *curv_name_or_position="0", REAL mult=0.001)
bool surfit::curve_surf (const char *surf_name_or_position="0", const char *curv_name_or_position="0")
bool surfit::curve_surf_add (const char *surf_name_or_position="0", REAL weight=1, const char *curv_name_or_position="0")
bool surfit::curve_surf_leq (const char *surf_name_or_position="0", const char *curv_name_or_position="0", REAL mult=0.001)
bool surfit::curve_surf_geq (const char *surf_name_or_position="0", const char *curv_name_or_position="0", REAL mult=0.001)
bool surfit::fault (const char *curv_name_or_position="0")

Function Documentation

bool curve REAL  value,
const char *  curv_name_or_position = "0"
 

Tcl syntax:
curve value "curve_name_or_position"
Description:
Using this rule the resulting surface approximates the curve with constant real number.
Parameters:
value real number for surface approximation at curve
curv_name_or_position curve name, or curve position number
Math:
This command adds the following functional to the functional sequence:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \sum_i \sum_j \left( u_{i,j} - z \right)^2, \]

where (i,j) - indices of the cells cross with curve, z - value for curve approximation.

Examples:
curve.tcl, flow_area.tcl, flow_cntr.tcl, flow_curve.tcl, flow_points.tcl, flow_points2.tcl, map_hor_frac.tcl, map_ver_frac.tcl, and points.tcl.

bool curve_add REAL  value,
REAL  weight = 1,
const char *  curv_name_or_position = "0"
 

Tcl syntax:
curve_add value weight "curv_name_or_position"
Description:
This rule modifies a previous (modifiable) rule by adding the curve rule with some weight. Use this rule if you don't know "value" exactly. Using this rule the resulting surface approximates the curve with "value", taking into account a previous (modifiable) rule.
Parameters:
value real number for surface approximation at curve
weight informational weight for this rule
curv_name_or_position curve name, or curve position number
Math:
This command modifies previous functional $ \Phi_0 $ by adding $ \Phi_1 $:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \Phi_0(u_{1,1},\ldots,u_{N,M}) + w\Phi_1(u_{1,1},\ldots,u_{N,M}), \]

where $ w $ - informational weight,

\[ \Phi_1(u_{1,1},\ldots,u_{N,M}) = \sum_i \sum_j \left( u_{i,j} - z \right)^2, \]

where (i,j) - indices of the cells cross with curve, z - value for curve approximation.

Examples:
curve.tcl.

bool curve_geq REAL  value,
const char *  curv_name_or_position = "0",
REAL  mult = 0.001
 

Tcl syntax:
curve_leq value "curv_name_or_position"
Description:
This rule adds the surface condition - "the resulting surface at curve should be greater than or equal to value". In case of the penalty algorithm algorithm bad convergence or unexpected (wrong) result, you should carefully review your conditions and if they are correct, try to change "mult" parameter.
Parameters:
value surface should be greater than or equal to this real number
curv_name_or_position curve name, or curve position number
mult multiplier parameter for penalty algorithm algorithm
Math:
This command adds the condition:

\[ u_{i,j} \geq z, \]

where (i,j) - indices of the cells cross with curve, z - constant value

Examples:
curve_ineq.tcl.

bool curve_leq REAL  value,
const char *  curv_name_or_position = "0",
REAL  mult = 0.001
 

Tcl syntax:
curve_leq value "curv_name_or_position"
Description:
This rule adds the surface condition - "the resulting surface at curve should be lower than or equal to value". In case of the penalty algorithm algorithm bad convergence or unexpected (wrong) result, you should carefully review your conditions and if they are correct, try to change "mult" parameter.
Parameters:
value surface should be lower than or equal to this real number
curv_name_or_position curve name, or curve position number
mult multiplier parameter for penalty algorithm algorithm
Math:
This command adds the condition:

\[ u_{i,j} \leq z, \]

where (i,j) - indices of the cells cross with curve, z - constant value

Examples:
curve_ineq.tcl.

bool curve_surf const char *  surf_name_or_position = "0",
const char *  curv_name_or_position = "0"
 

Tcl syntax:
curve_surf "surf_name_or_position" "curv_name_or_position"
Description:
Using this rule the resulting surface approximates curve with other surface values.
Parameters:
surf_name_or_position name of surface, or surface position number. The resulting surface will approximate this surface at curve.
curv_name_or_position curve name, or curve position number
Math:
This command adds the following functional to the functional sequence:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \sum_i \sum_j \left( u_{i,j} - f(x_i,y_j) \right)^2, \]

where (i,j) - indices of the cells cross with curve, f(x_i,y_j) - value for curve approximation, calculated as surface value at center of the (i,j) cell.

Examples:
curve_surf.tcl.

bool curve_surf_add const char *  surf_name_or_position = "0",
REAL  weight = 1,
const char *  curv_name_or_position = "0"
 

Tcl syntax:
curve_surf_add "surf_name_or_position" weight "curv_name_or_position"
Description:
This function modifies previous (modifiable) rule by adding the curve_surf rule with some weight. Using this rule, the resulting surface approximates curve with other surface "values" taking into account a previous (modifiable) rule.
Parameters:
surf_name_or_position name of surface, or surface position number. The resulting surface will approximate this surface at curve.
weight informational weight for this rule
curv_name_or_position curve name, or curve position number
Math:
This command modifies previous functional $ \Phi_0 $ by adding $ \Phi_1 $:

\[ \Phi(u_{1,1},\ldots,u_{N,M}) = \Phi_0(u_{1,1},\ldots,u_{N,M}) + w\Phi_1(u_{1,1},\ldots,u_{N,M}), \]

where $ w $ - informational weight,

\[ \Phi_1(u_{1,1},\ldots,u_{N,M}) = \sum_i \sum_j \left( u_{i,j} - f(x_i,y_j) \right)^2, \]

where (i,j) - indices of the cells cross with curve, f(x_i,y_j) - value for curve approximation, calculated as surface value at center of the (i,j) cell.

Examples:
curve_surf.tcl.

bool curve_surf_geq const char *  surf_name_or_position = "0",
const char *  curv_name_or_position = "0",
REAL  mult = 0.001
 

Tcl syntax:
curve_surf_geq "surf_name_or_position" "curv_name_or_position"
Description:
This rule adds the surface condition - "the resulting surface at curve should be greater than or equal to other surface values". In case of the penalty algorithm algorithm bad convergence or unexpected (wrong) result, you should carefully review your conditions and if they are correct, try to change "mult" parameter.
Parameters:
surf_name_or_position name of surface, or surface position number. The resulting surface should be greater than or equal to this surface values at curve.
curv_name_or_position curve name, or curve position number
mult multiplier parameter for penalty algorithm algorithm
Math:
This command adds the condition:

\[ u_{i,j} \geq f(x_i,y_i), \]

where (i,j) - indices of the cells cross with curve, f(x_i,y_j) - value for curve approximation, calculated as surface value at center of the (i,j) cell.

Examples:
curve_surf_ineq.tcl.

bool curve_surf_leq const char *  surf_name_or_position = "0",
const char *  curv_name_or_position = "0",
REAL  mult = 0.001
 

Tcl syntax:
curve_surf_leq "surf_name_or_position" "curv_name_or_position"
Description:
This rule adds the surface condition - "the resulting surface at curve should be lower than or equal to other surface values". In case of the penalty algorithm algorithm bad convergence or unexpected (wrong) result, you should carefully review your conditions and if they are correct, try to change "mult" parameter.
Parameters:
surf_name_or_position name of surface, or surface position number. The resulting surface should be lower than or equal to this surface values at curve.
curv_name_or_position curve name, or curve position number
mult multiplier parameter for penalty algorithm algorithm
Math:
This command adds the condition:

\[ u_{i,j} \leq f(x_i,y_i), \]

where (i,j) - indices of the cells cross with curve, f(x_i,y_j) - value for curve approximation, calculated as surface value at center of the (i,j) cell.

Examples:
curve_surf_ineq.tcl.

bool fault const char *  curv_name_or_position = "0"  ) 
 

Tcl syntax:
fault "curv_name_or_position"
Description:
This rule modifies special gridding rules by adding "fault" condition. This modification leads to special behavior of the resulting surface: the parts of resulting surface between fault curve are independent of each other. This rule is very useful in pressure field reconstruction, or structural surfaces modeling.
Parameters:
curv_name_or_position curve name, or curve position number
Gridding rules, modifiable with this rule:
Examples:
fault.tcl, fault_aniso.tcl, fault_approx.tcl, map_hor_frac.tcl, map_ver_frac.tcl, and trend.tcl.



surfit: open source gridding and contouring software.