← Back to team overview

dolfin team mailing list archive

Re: Implement localization of parameters to objects or hierarchies of objects: [...]

 

Very nice work! I'll try it out.

/Johan


> Commit from logg (2005-12-20 19:00 CET)
> ----------------
>
> Implement localization of parameters to objects or hierarchies of objects:
>
>   - Som bug fixes in the new system checked in yesterday: string
> parameters
>     (const char*) were automatically cast to bool instead of std::string.
>     Should be fixed now (added explicit initialization from const char*).
>
>   - Parameters can now be localized to objects by inheriting from the
>     new class Parametrized. Here's a short introduction:
>
>     Each object of a parametrized class holds a local database of
> parameters
>     that override the global database of parameters.
>
>     Hierarchies of parametrized objects may be created with the
>     property that each object inherits the parameters of its parent
>     and all parameters inherited by the parent. A parameter takes
>     the value of the first value specified in the hierarchy,
>     starting at the current object and following the parents back to
>     the global database.
>
>     Thus, a parameter that has not been specified, using the set()
>     function, in any given object, takes the value specified for the
>     parent, whereas any parameter value that has been specified
>     locally overrides the value specified for the parent.
>
>   - Here's an example (from src/test/):
>
>       class Foo : public Parametrized {};
>       class Bar : public Parametrized {};
>
>       Foo foo;
>       Bar bar;
>
>       bar.set("parent", foo);
>
>       foo.set("tolerance", 0.00007);
>       foo.set("file name", "foo.tmp");
>
>       bar.set("file name", "bar.tmp");
>       bar.set("my parameter", "bar");
>
>     And here's some test output:
>
>       global parameters:
>         [Parameter: value = "cg" (string)]
>         [Parameter: value = 0.1 (real)]
>         [Parameter: value = "primal.m" (string)]
>       parameters for foo:
>         [Parameter: value = "cg" (string)]
>         [Parameter: value = 7e-05 (real)]
>         [Parameter: value = "foo.tmp" (string)]
>       parameters for bar:
>         [Parameter: value = "cg" (string)]
>         [Parameter: value = 7e-05 (real)]
>         [Parameter: value = "bar.tmp" (string)]
>         [Parameter: value = "bar" (string)]
>
>   dolfin  ChangeLog                                        1.268
>   dolfin  src/kernel/io/XMLFile.cpp                        1.35
>   dolfin  src/kernel/log/LogStream.cpp                     1.12
>   dolfin  src/kernel/parameter/Makefile.am                 1.2
>   dolfin  src/kernel/parameter/Makefile.in                 1.2
>   dolfin  src/kernel/parameter/Parameter.cpp               1.2
>   dolfin  src/kernel/parameter/ParameterList.cpp           1.2
>   dolfin  src/kernel/parameter/ParameterValue.cpp          1.2
> + dolfin  src/kernel/parameter/Parametrized.cpp            1.1
>   dolfin  src/kernel/parameter/dolfin/DefaultParameters.h  1.2
>   dolfin  src/kernel/parameter/dolfin/Makefile.am          1.2
>   dolfin  src/kernel/parameter/dolfin/Makefile.in          1.3
>   dolfin  src/kernel/parameter/dolfin/Parameter.h          1.2
>   dolfin  src/kernel/parameter/dolfin/ParameterList.h      1.2
>   dolfin  src/kernel/parameter/dolfin/ParameterValue.h     1.2
> + dolfin  src/kernel/parameter/dolfin/Parametrized.h       1.1
>   dolfin  src/kernel/parameter/dolfin/dolfin_parameter.h   1.2
>   dolfin  src/test/main.cpp                                1.16
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
>


-- 
Johan Hoffman, PhD
Assistant Professor
School of Computer Science and Communication
Royal Institute of Technology KTH
SE-100 44 Stockholm
Sweden

Email: jhoffman@xxxxxxxxxxx
URL: www.nada.kth.se/~jhoffman




References