On Mon, Sep 10, 2012 at 10:54 AM, Johan Hake <[email protected]> wrote:
> On 09/10/2012 10:55 AM, Garth N. Wells wrote:
>> On Mon, Sep 10, 2012 at 9:45 AM, Anders Logg <[email protected]> wrote:
>>> On Sat, Sep 08, 2012 at 11:16:49PM +0200, Johan Hake wrote:
>>>>    On Sep 8, 2012 12:04 PM, <[1][email protected]> wrote:
>>>>    >
>>>>    > ------------------------------------------------------------
>>>>    > revno: 6896
>>>>    > committer: Garth N. Wells <[2][email protected]>
>>>>    > branch nick: assembler
>>>>    > timestamp: Sat 2012-09-08 10:49:23 +0100
>>>>    > message:
>>>>    >   Start cleaning up assemblers.
>>>>    >
>>>>    >   The assembler classes are no longer full of static member functions
>>>>    (this was pointless because we have free function for easy access) and
>>>>    the host of optional boolean arguments have been removed from the
>>>>    member function interfaces and made part of a common base class.
>>>>    >
>>>>    >   Simple usuage remains unchanged. For more advanced usage,
>>>>    FooAssembler object should be created and the boolean options set via
>>>>    >
>>>>    >     assmebler.reset_tensor = false;
>>>>    >
>>>>    >   etc. This should be much more intelligible and less error prone.
>>>>    > renamed:
>>>>
>>>>    Nice!
>>>
>>> Yes nice, but the parameter system should be used as for other classes:
>>>
>>>   assembler.parameters["reset_tensor"] = false;
>
> ++
>
>> I don't think so. There is no advantage to using parameters in this
>> case. It just adds complexity.
>
> What complexity more than having to deal with an extra parameters type
> instead of the bools attributes?
>

Yes, more code = increased complexity.

> The whole thing with parameters attached to objects is that these can
> then be nested into other parameters easily.
>

I can't see any reason why one would want to do that. The settings are
specific to the object.

Members functions/data should be preferable over parameters when
sensible. It's explicit to see a named member function or data, unlike
trawling through code to find allowable parameters based on a string.
And one gets compile time checking.

Parameters are suitable for options that are passed on the command
line, are optional and/or might be shared amongst objects.

Using strings over members functions/data unnecessarily is a
nightmare. It took a lot over work to untangle the crazy string-based
storage that was used for parallel mesh data so that we could move the
parallel meshes forward.

Garth

> Johan
>
>> Garth
>>
>>> --
>>> Anders
>>>
>>>
>>>>    Johan
>>>>
>>>>    >   dolfin/fem/AssemblerTools.cpp => dolfin/fem/AssemblerBase.cpp
>>>>    >   dolfin/fem/AssemblerTools.h => dolfin/fem/AssemblerBase.h
>>>>    > modified:
>>>>    >   demo/undocumented/periodic/cpp/main.cpp
>>>>    >   demo/undocumented/smoothing/python/demo_smoothing.py
>>>>    >   dolfin/ale/HarmonicSmoothing.cpp
>>>>    >   dolfin/fem/Assembler.cpp
>>>>    >   dolfin/fem/Assembler.h
>>>>    >   dolfin/fem/LinearVariationalSolver.cpp
>>>>    >   dolfin/fem/OpenMpAssembler.cpp
>>>>    >   dolfin/fem/OpenMpAssembler.h
>>>>    >   dolfin/fem/SymmetricAssembler.cpp
>>>>    >   dolfin/fem/SymmetricAssembler.h
>>>>    >   dolfin/fem/SystemAssembler.cpp
>>>>    >   dolfin/fem/SystemAssembler.h
>>>>    >   dolfin/fem/assemble.cpp
>>>>    >   dolfin/fem/dolfin_fem.h
>>>>    >   dolfin/swig/modules/fem/dependencies.txt
>>>>    >   dolfin/swig/modules/fem/module.i
>>>>    >   site-packages/dolfin/compilemodules/swigimportinfo.py
>>>>    >   dolfin/fem/AssemblerBase.cpp
>>>>    >   dolfin/fem/AssemblerBase.h
>>>>    > The size of the diff (1283 lines) is larger than your specified limit
>>>>    of 500 lines
>>>>    >
>>>>    >
>>>>    > Your team DOLFIN Core Team is subscribed to branch lp:dolfin.
>>>>    > To unsubscribe from this branch go to
>>>>    [4]https://code.launchpad.net/~dolfin-core/dolfin/trunk/+edit-subscript
>>>>    ion
>>>>
>>>> Referenser
>>>>
>>>>    1. mailto:[email protected]
>>>>    2. mailto:[email protected]
>>>>    3. https://code.launchpad.net/~dolfin-core/dolfin/trunk
>>>>    4. 
>>>> https://code.launchpad.net/~dolfin-core/dolfin/trunk/+edit-subscription
>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~dolfin
>>>> Post to     : [email protected]
>>>> Unsubscribe : https://launchpad.net/~dolfin
>>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~dolfin
>>> Post to     : [email protected]
>>> Unsubscribe : https://launchpad.net/~dolfin
>>> More help   : https://help.launchpad.net/ListHelp
>

_______________________________________________
Mailing list: https://launchpad.net/~dolfin
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~dolfin
More help   : https://help.launchpad.net/ListHelp

Reply via email to