Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
feelcore/parameter.hpp
1 /* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2 
3  This file is part of the Feel library
4 
5  Author(s): Christophe Prud'homme <christophe.prudhomme@feelpp.org>
6  Date: 2009-04-03
7 
8  Copyright (C) 2009 Université de Grenoble 1
9 
10  This library is free software; you can redistribute it and/or
11  modify it under the terms of the GNU Lesser General Public
12  License as published by the Free Software Foundation; either
13  version 3.0 of the License, or (at your option) any later version.
14 
15  This library is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public
21  License along with this library; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */
29 #ifndef __feelcore_parameter_H
30 #define __feelcore_parameter_H 1
31 
32 
33 #if !defined(BOOST_PARAMETER_MAX_ARITY)
34 #define BOOST_PARAMETER_MAX_ARITY 10
35 #endif
36 
37 #include <boost/parameter.hpp>
38 #include <boost/type_traits.hpp>
39 #if 0
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>
44 #endif
45 
46 namespace Feel
47 {
48 namespace parameter = boost::parameter;
49 
50 BOOST_PARAMETER_NAME( vm ) // Note: no semicolon
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 )
65 
66  BOOST_PARAMETER_NAME( verbose )
67 
68 
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 )
111 // parameter for exporter
112  BOOST_PARAMETER_NAME( geo )
113  BOOST_PARAMETER_NAME( fileset )
114 // parameter for description of geometries
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 )
138 // parameter for adapt
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 )
147 // parameter for xmlParse
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 )
160 // project and integrate
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 )
171 
172  BOOST_PARAMETER_NAME( quadptloc )
173 
174 
175 // orders
176  BOOST_PARAMETER_NAME( order_u )
177  BOOST_PARAMETER_NAME( order_p )
178 
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 )
189 
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 )
204 
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 )
213 
214  BOOST_PARAMETER_NAME( components )
215  BOOST_PARAMETER_NAME( periodicity )
216 
217  BOOST_PARAMETER_NAME( collect_garbage )
218 
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 )
228 
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 )
237 
238  BOOST_PARAMETER_NAME( use_tbb )
239  BOOST_PARAMETER_NAME( grainsize )
240  BOOST_PARAMETER_NAME( partitioner )
241 
242  BOOST_PARAMETER_NAME( save )
243  BOOST_PARAMETER_NAME( ddmethod )
244  BOOST_PARAMETER_NAME( penaldir )
245 
246  BOOST_PARAMETER_NAME( close )
247 
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 )
256 } // Feel
257 
258 
259 namespace Feel
260 {
261 namespace detail
262 {
263 template<typename TheArgs, typename Tag>
264 struct remove_pointer_const_reference_type
265 {
266  typedef typename boost::remove_pointer<
267  typename boost::remove_const<
268  typename boost::remove_reference<
269  typename parameter::binding<TheArgs, Tag>::type
270  >::type
271  >::type
272  >::type type;
273 };
274 template<typename TheArgs, typename Tag, typename Default>
275 struct remove_pointer_const_reference_default_type
276 {
277  typedef typename boost::remove_pointer<
278  typename boost::remove_const<
279  typename boost::remove_reference<
280  typename parameter::binding<TheArgs, Tag, Default>::type
281  >::type
282  >::type
283  >::type type;
284 };
285 } // detail
286 } // Feel
287 
288 #endif /* __feelcore_parameter_H */

Generated on Sun Dec 22 2013 13:11:10 for Feel++ by doxygen 1.8.5