29 #ifndef __feelcore_parameter_H
30 #define __feelcore_parameter_H 1
33 #if !defined(BOOST_PARAMETER_MAX_ARITY)
34 #define BOOST_PARAMETER_MAX_ARITY 10
37 #include <boost/parameter.hpp>
38 #include <boost/type_traits.hpp>
40 #include <boost/parameter/keyword.hpp>
41 #include <boost/parameter/aux_/maybe.hpp>
42 #include <boost/parameter/name.hpp>
43 #include <boost/parameter/preprocessor.hpp>
48 namespace parameter = boost::parameter;
50 BOOST_PARAMETER_NAME( vm )
51 BOOST_PARAMETER_NAME( options )
52 BOOST_PARAMETER_NAME( about )
53 BOOST_PARAMETER_NAME( prefix )
54 BOOST_PARAMETER_NAME( sub )
55 BOOST_PARAMETER_NAME( opt )
56 BOOST_PARAMETER_NAME( path )
57 BOOST_PARAMETER_NAME( suffix )
58 BOOST_PARAMETER_NAME( filename )
59 BOOST_PARAMETER_NAME( sep )
60 BOOST_PARAMETER_NAME( directory )
61 BOOST_PARAMETER_NAME( subdir )
62 BOOST_PARAMETER_NAME( format )
63 BOOST_PARAMETER_NAME( argc )
64 BOOST_PARAMETER_NAME( argv )
66 BOOST_PARAMETER_NAME( verbose )
69 BOOST_PARAMETER_NAME( matrix )
70 BOOST_PARAMETER_NAME( buildGraphWithTranspose )
71 BOOST_PARAMETER_NAME( matrixA )
72 BOOST_PARAMETER_NAME( matrixB )
73 BOOST_PARAMETER_NAME( rhs )
74 BOOST_PARAMETER_NAME( solution )
75 BOOST_PARAMETER_NAME( prec )
76 BOOST_PARAMETER_NAME( transpose )
77 BOOST_PARAMETER_NAME( reuse_prec )
78 BOOST_PARAMETER_NAME( reuse_jac )
79 BOOST_PARAMETER_NAME( maxit )
80 BOOST_PARAMETER_NAME( tolerance )
81 BOOST_PARAMETER_NAME( rtolerance )
82 BOOST_PARAMETER_NAME( atolerance )
83 BOOST_PARAMETER_NAME( dtolerance )
84 BOOST_PARAMETER_NAME( stolerance )
85 BOOST_PARAMETER_NAME( ksp )
86 BOOST_PARAMETER_NAME( pc )
87 BOOST_PARAMETER_NAME( pcfactormatsolverpackage )
88 BOOST_PARAMETER_NAME( constant_null_space )
89 BOOST_PARAMETER_NAME( test )
90 BOOST_PARAMETER_NAME( trial )
91 BOOST_PARAMETER_NAME( vector )
92 BOOST_PARAMETER_NAME( pattern )
93 BOOST_PARAMETER_NAME( pattern_block )
94 BOOST_PARAMETER_NAME( diag_is_nonzero )
95 BOOST_PARAMETER_NAME( block )
96 BOOST_PARAMETER_NAME( copy_values )
97 BOOST_PARAMETER_NAME( properties )
98 BOOST_PARAMETER_NAME( do_threshold )
99 BOOST_PARAMETER_NAME( threshold )
100 BOOST_PARAMETER_NAME( init )
101 BOOST_PARAMETER_NAME( rowstart )
102 BOOST_PARAMETER_NAME( colstart )
103 BOOST_PARAMETER_NAME( name )
104 BOOST_PARAMETER_NAME( nev )
105 BOOST_PARAMETER_NAME( ncv )
106 BOOST_PARAMETER_NAME( backend )
107 BOOST_PARAMETER_NAME( problem )
108 BOOST_PARAMETER_NAME( solver )
109 BOOST_PARAMETER_NAME( spectrum )
110 BOOST_PARAMETER_NAME( transform )
112 BOOST_PARAMETER_NAME( geo )
113 BOOST_PARAMETER_NAME( fileset )
115 BOOST_PARAMETER_NAME( h )
116 BOOST_PARAMETER_NAME( dim )
117 BOOST_PARAMETER_NAME( order )
118 BOOST_PARAMETER_NAME( geo_parameters )
119 BOOST_PARAMETER_NAME( addmidpoint )
120 BOOST_PARAMETER_NAME( usenames )
121 BOOST_PARAMETER_NAME( xmin )
122 BOOST_PARAMETER_NAME( xmax )
123 BOOST_PARAMETER_NAME( ymin )
124 BOOST_PARAMETER_NAME( ymax )
125 BOOST_PARAMETER_NAME( zmin )
126 BOOST_PARAMETER_NAME( zmax )
127 BOOST_PARAMETER_NAME( refine )
128 BOOST_PARAMETER_NAME( update )
129 BOOST_PARAMETER_NAME( physical_are_elementary_regions )
130 BOOST_PARAMETER_NAME( parametricnodes )
131 BOOST_PARAMETER_NAME( force_rebuild )
132 BOOST_PARAMETER_NAME( rebuild )
133 BOOST_PARAMETER_NAME( shear )
134 BOOST_PARAMETER_NAME( recombine )
135 BOOST_PARAMETER_NAME( files_path )
136 BOOST_PARAMETER_NAME( depends )
137 BOOST_PARAMETER_NAME( optimize3d_netgen )
139 BOOST_PARAMETER_NAME( model )
140 BOOST_PARAMETER_NAME( geotracking )
141 BOOST_PARAMETER_NAME( snapthickness )
142 BOOST_PARAMETER_NAME( statistics )
143 BOOST_PARAMETER_NAME( hmin )
144 BOOST_PARAMETER_NAME( hmax )
145 BOOST_PARAMETER_NAME( collapseOnBoundary )
146 BOOST_PARAMETER_NAME( collapseOnBoundaryTolerance )
148 BOOST_PARAMETER_NAME( kind )
149 BOOST_PARAMETER_NAME( type )
150 BOOST_PARAMETER_NAME( latex )
151 BOOST_PARAMETER_NAME( cmdName )
152 BOOST_PARAMETER_NAME( values )
153 BOOST_PARAMETER_NAME( dependencies )
154 BOOST_PARAMETER_NAME( funcs )
155 BOOST_PARAMETER_NAME( mesh )
156 BOOST_PARAMETER_NAME( geoentity )
157 BOOST_PARAMETER_NAME( desc )
158 BOOST_PARAMETER_NAME( shape )
159 BOOST_PARAMETER_NAME( convex )
161 BOOST_PARAMETER_NAME( sum )
162 BOOST_PARAMETER_NAME( accumulate )
163 BOOST_PARAMETER_NAME( geomap )
164 BOOST_PARAMETER_NAME( straighten )
165 BOOST_PARAMETER_NAME( expr )
166 BOOST_PARAMETER_NAME( grad_expr)
167 BOOST_PARAMETER_NAME( pset )
168 BOOST_PARAMETER_NAME( quad )
169 BOOST_PARAMETER_NAME( quad1 )
170 BOOST_PARAMETER_NAME( arg )
172 BOOST_PARAMETER_NAME( quadptloc )
176 BOOST_PARAMETER_NAME( order_u )
177 BOOST_PARAMETER_NAME( order_p )
179 BOOST_PARAMETER_NAME( initial_time )
180 BOOST_PARAMETER_NAME( final_time )
181 BOOST_PARAMETER_NAME( time_step )
182 BOOST_PARAMETER_NAME( strategy )
183 BOOST_PARAMETER_NAME( steady )
184 BOOST_PARAMETER_NAME( restart )
185 BOOST_PARAMETER_NAME( restart_path )
186 BOOST_PARAMETER_NAME( restart_at_last_save )
187 BOOST_PARAMETER_NAME( rank_proc_in_files_name )
188 BOOST_PARAMETER_NAME( freq )
190 BOOST_PARAMETER_NAME( markerName )
191 BOOST_PARAMETER_NAME( markerAll )
192 BOOST_PARAMETER_NAME( marker1 )
193 BOOST_PARAMETER_NAME( marker2 )
194 BOOST_PARAMETER_NAME( marker3 )
195 BOOST_PARAMETER_NAME( marker4 )
196 BOOST_PARAMETER_NAME( marker5 )
197 BOOST_PARAMETER_NAME( marker6 )
198 BOOST_PARAMETER_NAME( marker7 )
199 BOOST_PARAMETER_NAME( marker8 )
200 BOOST_PARAMETER_NAME( marker9 )
201 BOOST_PARAMETER_NAME( marker10 )
202 BOOST_PARAMETER_NAME( marker11 )
203 BOOST_PARAMETER_NAME( marker12 )
205 BOOST_PARAMETER_NAME( domain )
206 BOOST_PARAMETER_NAME( image )
207 BOOST_PARAMETER_NAME( domainSpace )
208 BOOST_PARAMETER_NAME( imageSpace )
209 BOOST_PARAMETER_NAME( range )
210 BOOST_PARAMETER_NAME( element )
211 BOOST_PARAMETER_NAME( parameter )
212 BOOST_PARAMETER_NAME( sampling )
214 BOOST_PARAMETER_NAME( components )
215 BOOST_PARAMETER_NAME( periodicity )
217 BOOST_PARAMETER_NAME( collect_garbage )
219 BOOST_PARAMETER_NAME( partitions )
220 BOOST_PARAMETER_NAME( partition_file )
221 BOOST_PARAMETER_NAME( rebuild_partitions )
222 BOOST_PARAMETER_NAME( rebuild_partitions_filename )
223 BOOST_PARAMETER_NAME( worldcomm )
224 BOOST_PARAMETER_NAME( worldscomm )
225 BOOST_PARAMETER_NAME( parallel )
226 BOOST_PARAMETER_NAME( substructuring )
227 BOOST_PARAMETER_NAME( structured )
229 BOOST_PARAMETER_NAME( jacobian )
230 BOOST_PARAMETER_NAME( residual )
231 BOOST_PARAMETER_NAME( currentElt )
232 BOOST_PARAMETER_NAME( newElt )
233 BOOST_PARAMETER_NAME( space )
234 BOOST_PARAMETER_NAME( initial_theta )
235 BOOST_PARAMETER_NAME( min_theta )
236 BOOST_PARAMETER_NAME( forceRelaxation )
238 BOOST_PARAMETER_NAME( use_tbb )
239 BOOST_PARAMETER_NAME( grainsize )
240 BOOST_PARAMETER_NAME( partitioner )
242 BOOST_PARAMETER_NAME( save )
243 BOOST_PARAMETER_NAME( ddmethod )
244 BOOST_PARAMETER_NAME( penaldir )
246 BOOST_PARAMETER_NAME( close )
248 BOOST_PARAMETER_NAME( author )
249 BOOST_PARAMETER_NAME( task )
250 BOOST_PARAMETER_NAME( email )
251 BOOST_PARAMETER_NAME( license )
252 BOOST_PARAMETER_NAME( copyright )
253 BOOST_PARAMETER_NAME( home )
254 BOOST_PARAMETER_NAME( bugs )
255 BOOST_PARAMETER_NAME( version )
263 template<
typename TheArgs,
typename Tag>
264 struct remove_pointer_const_reference_type
266 typedef typename boost::remove_pointer<
267 typename boost::remove_const<
268 typename boost::remove_reference<
269 typename parameter::binding<TheArgs, Tag>::type
274 template<
typename TheArgs,
typename Tag,
typename Default>
275 struct remove_pointer_const_reference_default_type
277 typedef typename boost::remove_pointer<
278 typename boost::remove_const<
279 typename boost::remove_reference<
280 typename parameter::binding<TheArgs, Tag, Default>::type