1# ------------------------------------------------------------------------------ 2 3DECIDE = PETSC_DECIDE 4DEFAULT = PETSC_DEFAULT 5DETERMINE = PETSC_DETERMINE 6CURRENT = PETSC_CURRENT 7UNLIMITED = PETSC_UNLIMITED 8 9__doc__ += """ 10Basic constants: 11 12`DECIDE` 13 Use a default value for an `int` or `float` parameter. 14`DEFAULT` 15 Use a default value chosen by PETSc. 16`DETERMINE` 17 Compute a default value for an `int` or `float` parameter. 18 For tolerances this uses the default value from when 19 the object's type was set. 20`CURRENT` 21 Do not change the current value that is set. 22`UNLIMITED` 23 For a parameter that is a bound, such as the maximum 24 number of iterations, do not bound the value. 25""" 26 27# ------------------------------------------------------------------------------ 28 29INFINITY = toReal(PETSC_INFINITY) 30NINFINITY = toReal(PETSC_NINFINITY) 31PINFINITY = toReal(PETSC_INFINITY) 32 33__doc__ += """ 34More constants: 35 36`INFINITY` 37 Very large real value. 38`NINFINITY` 39 Very large negative real value. 40`PINFINITY` 41 Very large positive real value, same as `INFINITY`. 42""" 43 44# ------------------------------------------------------------------------------ 45 46 47class InsertMode(object): 48 """Insertion mode. 49 50 Most commonly used insertion modes are: 51 52 `INSERT` 53 Insert provided value/s discarding previous value/s. 54 `ADD` 55 Add provided value/s to current value/s. 56 `MAX` 57 Insert the maximum of provided value/s and current value/s. 58 59 See Also 60 -------- 61 petsc.InsertMode 62 63 """ 64 # native 65 NOT_SET_VALUES = PETSC_NOT_SET_VALUES 66 INSERT_VALUES = PETSC_INSERT_VALUES 67 ADD_VALUES = PETSC_ADD_VALUES 68 MAX_VALUES = PETSC_MAX_VALUES 69 INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES 70 ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES 71 INSERT_BC_VALUES = PETSC_INSERT_BC_VALUES 72 ADD_BC_VALUES = PETSC_ADD_BC_VALUES 73 # aliases 74 INSERT = INSERT_VALUES 75 ADD = ADD_VALUES 76 MAX = MAX_VALUES 77 INSERT_ALL = INSERT_ALL_VALUES 78 ADD_ALL = ADD_ALL_VALUES 79 INSERT_BC = INSERT_BC_VALUES 80 ADD_BC = ADD_BC_VALUES 81 82# ------------------------------------------------------------------------------ 83 84 85class ScatterMode(object): 86 """Scatter mode. 87 88 Most commonly used scatter modes are: 89 90 `FORWARD` 91 Scatter values in the forward direction. 92 `REVERSE` 93 Scatter values in the reverse direction. 94 95 See Also 96 -------- 97 Scatter.create, Scatter.begin, Scatter.end 98 petsc.ScatterMode 99 100 """ 101 # native 102 SCATTER_FORWARD = PETSC_SCATTER_FORWARD 103 SCATTER_REVERSE = PETSC_SCATTER_REVERSE 104 SCATTER_FORWARD_LOCAL = PETSC_SCATTER_FORWARD_LOCAL 105 SCATTER_REVERSE_LOCAL = PETSC_SCATTER_REVERSE_LOCAL 106 # aliases 107 FORWARD = SCATTER_FORWARD 108 REVERSE = SCATTER_REVERSE 109 FORWARD_LOCAL = SCATTER_FORWARD_LOCAL 110 REVERSE_LOCAL = SCATTER_REVERSE_LOCAL 111 112# ------------------------------------------------------------------------------ 113 114 115class NormType(object): 116 """Norm type. 117 118 Commonly used norm types: 119 120 `N1` 121 The one norm. 122 `N2` 123 The two norm. 124 `FROBENIUS` 125 The Frobenius norm. 126 `INFINITY` 127 The infinity norm. 128 129 See Also 130 -------- 131 petsc.NormType 132 133 """ 134 # native 135 NORM_1 = PETSC_NORM_1 136 NORM_2 = PETSC_NORM_2 137 NORM_1_AND_2 = PETSC_NORM_1_AND_2 138 NORM_FROBENIUS = PETSC_NORM_FROBENIUS 139 NORM_INFINITY = PETSC_NORM_INFINITY 140 NORM_MAX = PETSC_NORM_MAX 141 # aliases 142 N1 = NORM_1 143 N2 = NORM_2 144 N12 = NORM_1_AND_2 145 MAX = NORM_MAX 146 FROBENIUS = NORM_FROBENIUS 147 INFINITY = NORM_INFINITY 148 # extra aliases 149 FRB = FROBENIUS 150 INF = INFINITY 151 152# ------------------------------------------------------------------------------ 153