All right, those work for me. Thanks!

Best,
Weixiong
在 2017年5月9日星期二 UTC-7下午6:48:05,Wolfgang Bangerth写道:
>
> On 05/09/2017 05:59 PM, Weixiong Zheng wrote: 
> > 
> > I got bothered a bit about the problem: the existence of some parameters 
> > depends on the other parameters defining the problem. what I am doing 
> now is 
> > that I have two methods called: declare_parameter(prm) and 
> > declare_other_parameter(prm,prm2) and further I do: 
> > 
> > void PROBLEM<dim>::declare_other_parameters(prm,prm2) 
> > { 
> >   declare corresponding entries in prm2 after reading input parameters 
> in prm; 
> > } 
> > 
> > main () 
> > { 
> >   ParameterHandler prm, prm2; 
> >   PROBLEM<dimension>::declare_parameter (prm); 
> >   prm.read_input (argv[1]); 
> >   PROBLEM<dimension>::declare_other_parameter (prm,prm2); 
> >   prm2.read_input (argv[2]); 
> >   PROBLEM<dimension> prob (prm,prm2); 
> > } 
> > 
> > As you see, I actually do declare entries for parameters for problem 
> > definition and read them in the first file. After that I have to declare 
> extra 
> > entries depending on what I have read in the first file and read in 
> another file. 
> > 
> > What I prefer is a way that I can put everything in one file, any idea 
> for 
> > that please? 
>
> There isn't an easy one. The problem is that you can't read parameters 
> that 
> haven't been declared yet. So you can't declare parameters *in response 
> to* 
> other parameters. 
>
> But there are two options: 
>
> * You just declare all possible parameters; depending on the values given 
> for 
> some parameters, you're just going to ignore some of the others. 
>
> * You could require the user to write the first set of parameters at the 
> top 
> of the file, and then use the 'last_line' argument of 
> ParameterHandler::parse_input() to stop reading at a specific point, see 
>
>
> https://dealii.org/developer/doxygen/deal.II/classParameterHandler.html#a030e84298d59cfea765f43d8600dee48
>  
>
> You would then declare some additional parameters as you do above, and 
> just 
> re-read the *entire* file a second time (i.e., not specify an 'end_line'). 
>
> Best 
>   W. 
>
> -- 
> ------------------------------------------------------------------------ 
> Wolfgang Bangerth          email:                 bang...@colostate.edu 
> <javascript:> 
>                             www: http://www.math.colostate.edu/~bangerth/ 
>
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to