Difference between revisions of "Software documentation"

From Pynomo
Jump to: navigation, search
(Combination of blocks)
Line 32: Line 32:
 
It is to be noted that nomograph is defined as python dicts that constitute one dict that is passed to Nomographer class.
 
It is to be noted that nomograph is defined as python dicts that constitute one dict that is passed to Nomographer class.
  
= Basic blocks =
+
== Basic blocks ==
 
The following blocks are the core of PyNomo. These are used as easy building blocks for nomograph construction. If these do not suffice one can build as complex nomograph as one wishes by using determinants in [[type 9]].
 
The following blocks are the core of PyNomo. These are used as easy building blocks for nomograph construction. If these do not suffice one can build as complex nomograph as one wishes by using determinants in [[type 9]].
  

Revision as of 20:12, 5 October 2008

Software documentation

Nomographs of PyNomo are constructed by writing a python script that defines the nomograph and calls class Nomographer to build the nomograph.

Nomograph is constructed by defining axis parameters that are used to build a block. Many blocks are possibly aligned with each other and construct the nomograph.

A simple example of pseudocode of typical PyNomo structure is the following:

from pynomo import nomographer
# define block 1
axis_params_1_for_block_1 = {...}
axis_params_2_for_block_1 = {...}
axis_params_3_for_block_1 = {...}
block_1 = {...} 
 
# define block 2
axis_params_1_for_block_2 = {...}
axis_params_2_for_block_2 = {...}
axis_params_3_for_block_2 = {...}
block_2 = {...}
 
# define nomograph 
main_params={
              'filename':'filename_of_nomograph.pdf',  # filename of output
              'block_params':[block_1,block_2],        # the blocks make the nomograph
              'transformations':[('scale paper',)],    # these make (projective) transformations for the canves
              }
# create nomograph
Nomographer(main_params)

It is to be noted that nomograph is defined as python dicts that constitute one dict that is passed to Nomographer class.

Basic blocks

The following blocks are the core of PyNomo. These are used as easy building blocks for nomograph construction. If these do not suffice one can build as complex nomograph as one wishes by using determinants in type 9.

Type 1 [math]F_1(u_1)+F_2(u_2)+F_3(u_3)=0 \,[/math] Three parallel lines
Type 2 [math]F_1(u_1)=F_2(u_2) F_3(u_3) \,[/math] "N" or "Z"
Type 3 [math]F_1(u_1)+F_2(u_2)+\cdots+F_N(u_N)=0 [/math] N parallel lines
Type 4 [math]\frac{F_1(u_1)}{F_2(u_2)}=\frac{F_3(u_3)}{F_4(u_4)} [/math] "Proportion"
Type 5 [math]F_1(v) = F_2(x,u). \,[/math] "Contour"
Type 6 [math]u=u \,[/math] "Ladder"
Type 7 [math]\frac{1}{F_1(u_1)}+\frac{1}{F_2(u_2)}=\frac{1}{F_3(u_3)} \,[/math] "Angle"
Type 8 [math] y = {F(u)} \,[/math] "Single"
Type 9 [math] \begin{vmatrix} F_1(u_1[,v_1]) & G_1(u_1[,v_1]) & H_1(u_1[,v_1]) \\ F_2(u_2[,v_2]) & G_2(u_2[,v_2]) & H_2(u_2[,v_2]) \\ F_3(u_3[,v_3]) & G_3(u_3[,v_3]) & H_3(u_3[,v_3]) \end{vmatrix} = 0[/math] "General determinant"
Type 10 [math] F_1(u)+F_2(v)F_3(w)+F_4(w)=0 \,[/math] One curved line

Axes

Defining axes and their appearance is major work in nomograph construction. Different possibilities are illustrated in examples of axes parameters.

Combination of blocks

If a nomograph consists of many equations that are aligned, a compound nomograph is constructed.