Mercurial > fem-fenics-eugenio
changeset 49:a4ef215d1eed
Check if size of input parameters agree
author | gedeone-octave <marco.vassallo@outlook.com> |
---|---|
date | Mon, 22 Jul 2013 15:32:27 +0200 |
parents | c73bca616ca7 |
children | fcfecdd3a9b5 |
files | src/fem_func.cc |
diffstat | 1 files changed, 18 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fem_func.cc Mon Jul 22 15:13:30 2013 +0200 +++ b/src/fem_func.cc Mon Jul 22 15:32:27 2013 +0200 @@ -40,21 +40,26 @@ { const boost::shared_ptr<const dolfin::FunctionSpace> & V = fspo.get_pfsp (); - dolfin::Vector du(myu.length ()); - for (std::size_t i = 0; i < myu.length (); ++i) - du.setitem (i, myu(i)); - - boost::shared_ptr<dolfin::Vector> uu (new dolfin::Vector(du)); - boost::shared_ptr <const dolfin::Function> u (new dolfin::Function(V, uu)); + if (V->dim () != myu.length ()) + error ("The size of the functional space and of the vector must agree"); + else + { + dolfin::Vector du(myu.length ()); + for (std::size_t i = 0; i < myu.length (); ++i) + du.setitem (i, myu(i)); - if (! function_type_loaded) - { - function::register_type (); - function_type_loaded = true; - mlock (); - } + boost::shared_ptr<dolfin::Vector> uu (new dolfin::Vector(du)); + boost::shared_ptr <const dolfin::Function> u (new dolfin::Function(V, uu)); - retval = new function (u); + if (! function_type_loaded) + { + function::register_type (); + function_type_loaded = true; + mlock (); + } + + retval = new function (u); + } } } }