Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

moc_unitproc.c File Reference

Basic Unit Processes. More...

#include <stdio.h>
#include <math.h>
#include "moc_kernel.h"
#include "moc_gasdynamic.h"
#include "moc_wall.h"
#include "moc_unitproc.h"

Defines

#define MAX_NEAR   30
#define MAX_NEAR   30

Functions

int InteriorNode (int node1, int node2, int node4)
int InsertNode (int node1, int node2, int node4, double alpha)
int CMinusWallNode (int iw, int node1, int node4)
int CPlusWallNode (int iw, int node2, int node4)
int CPlusFreeBndyNode (int node0, int node2, int node4)
int CMinusFreeBndyNode (int node0, int node1, int node4)
int AddStreamNode (int node0, int node1, int node2, int node4, int test_only)
int StepStreamNode (int node0, int node4, double dL)
int InterpolateNode (double x_point, double y_point, double R, int node4)

Variables

int max_iteration = 15
double position_tolerance = 1.0e-5


Detailed Description

Basic Unit Processes.

Basic unit processes implemented in C. Each function computes the data for a new node based on information from other nodes. The functions are computationally intensive and access the internals of the node data structure directly. Thus, we believe that the implementation is faster and tidier than a pure Tcl implementation -- at least we hope so.


Function Documentation

int AddStreamNode int  node0,
int  node1,
int  node2,
int  node4,
int  test_only
 

Purpose: Calculate a new streamline node, extending the streamline to the line joining nodeA and nodeB.
Input :
node0 : index of initial point on the streamline
node1 : index of first initial interpolation point
node2 : index of second initial interpolation point
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
test_only : flag to indicate whether we want to test for intersection only or if we actually want to add the node to the streamline
test_only == 0 : add the node
test_only == 1 : test for intersection only
Output :
if test_only == 0 : returns the index of the solution point or a value of 0 if there has been a failure.
if test_only == 1 : returns 1 if intersection occurred between nodes 1 and 2. A value of 0 indicates that intersection did not occur between nodes 1 and 2.
(Available from the Tcl interpreter.)

int CMinusFreeBndyNode int  node0,
int  node1,
int  node4
 

Purpose: Calculate a free-boundary point from one point (node0) already on the boundary and one point (node1) on a C- characteristic.
Input :
node0 : index of initial point along C0 streamline
node1 : index of initial point along C- characteristic
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int CMinusWallNode int  iw,
int  node1,
int  node4
 

Purpose: Calculate a wall point from one initial (C-) point.
Input :
iw : Index of selected wall.
node1 : index of initial point along C- characteristic
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int CPlusFreeBndyNode int  node0,
int  node2,
int  node4
 

Purpose: Calculate a free-boundary point from one point (node0) already on the boundary and one point (node2) on a C+ characteristic.
Input :
node0 : index of initial point along C0 streamline
node2 : index of initial point along C+ characteristic
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int CPlusWallNode int  iw,
int  node2,
int  node4
 

Purpose: Calculate a wall point from one upstream (C+) point.
Input :
iw : index of the wall
node2 : index of initial point along C+ characteristic
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int InsertNode int  node1,
int  node2,
int  node4,
double  alpha
 

Purpose: Insert a node (node4) in between two initial nodes (node1 and node2).
If node1 and node2 are adjacent nodes along a characteristic line, node4 will be connected in between.
Input :
node1 : index of initial point 1
node2 : index of initial point 2
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
alpha : fraction that node4 is like node2; n4.value = alpha n2.value + (1-alpha) n1.value
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int InteriorNode int  node1,
int  node2,
int  node4
 

Purpose: Calculate an interior point from two initial points.
Input :
node1 : index of initial point along C- characteristic
node2 : index of initial point along C+ characteristic
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure.
(Available from the Tcl interpreter.)

int InterpolateNode double  x_point,
double  y_point,
double  R,
int  node4
 

Purpose: Locate a new node at coordinates (x,y), interpolating the node's properties from other near-by nodes.
Input :
x_point, y_point : coordinates of the new node
R : radius-of-influence for the Shepard interpolation
node4 : index of solution point (may have a value of -1)
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure. One possible failure is that there are no nodes close enough to include in the interpolation.
(Available from the Tcl interpreter.)

int StepStreamNode int  node0,
int  node4,
double  dL
 

Purpose: Calculate a new streamline node, extending the streamline by length dL
Input :
node0 : index of initial point on the streamline
node4 : index of solution point (may have a value of -1)
dL : step-size along streamline; A positive value will step downstream while a negative value will step upstream.
If -1 is specified as the index for node4, a new node will be created for the solution point.
Output :
Returns the index of the solution point or a value of -1 if there has been a failure. One possible failure is that there are no nodes close enough to include in the interpolation phase.
(Available from the Tcl interpreter.)


Variable Documentation

int max_iteration = 15
 

Most of these functions involve some iteration. The parameters for convergence check are:
max_iteration = 15
position_tolerance = 1.0e-5


Generated on Tue Oct 25 10:24:13 2005 for CFCFD by  doxygen 1.4.4