On Nov 14 2009, Anders Logg wrote: >On Sat, Nov 14, 2009 at 11:35:35AM +0000, Garth N. Wells wrote: >> >> >> DOLFIN wrote: >> > One or more new changesets pushed to the primary dolfin repository. >> > A short summary of the last three changesets is included below. >> > >> > changeset: 7442:a409a2b179f1 tag: tip user: "Garth N. Wells >> > <gn...@cam.ac.uk>" date: Fri Nov 13 19:08:44 2009 +0000 files: >> > demo/pde/advection-diffusion/cpp/main.cpp demo/pde/bcs/cpp/main.cpp >> > demo/pde/cahn-hilliard/cpp/main.cpp demo/pde/curl-curl/cpp/main.cpp >> > demo/pde/elasticity/cpp/main.cpp demo/pde/elastodynamics/cpp/main.cpp >> > demo/pde/equality/cpp/main.cpp demo/pde/nonlinear-poisson/cpp/main.cpp >> > demo/pde/periodic/cpp/main.cpp demo/pde/poisson/cpp/main.cpp >> > demo/pde/poisson1D/cpp/main.cpp >> > demo/pde/stokes/stabilized/cpp/main.cpp >> > demo/pde/stokes/taylor-hood/cpp/main.cpp >> > demo/pde/sym-dirichlet-bc/cpp/main.cpp dolfin/function/Constant.cpp >> > dolfin/function/Constant.h dolfin/function/Expression.cpp >> > dolfin/function/Expression.h dolfin/function/SpecialFunctions.cpp >> > dolfin/swig/docstrings.i dolfin/swig/function_pre.i description: >> > Remove geometric dimension from Constant. Some demos broken still. >> > >> >> I had to comment out the below code in function_pre.i since I removed >> Expression::geometric_dimension. I don't really understand how it works. >> >> Garth >> >> >> >> >> //----------------------------------------------------------------------------- >> >> // Director typemap for coordinates in Expression >> //----------------------------------------------------------------------------- >> >> %typemap(directorin) const double* x { >> { >> // Compute size of x >> npy_intp dims[1] = {this->geometric_dimension()}; >> $input = PyArray_SimpleNewFromData(1, dims, NPY_DOUBLE, >> reinterpret_cast<char *>(const_cast<double*>($1_name))); >> } >> } > >When I first looked at your changes (the removal of geometric_dimension), >I couldn't understand why we had required it in the first place, but >this reminds me about why. I think it was added originally to let us >use exactly this typemap to map the x argument to a NumPy array in the >eval callback. > >Johan can comment more on this. There might be a way around this. > >One option could be to not use double* in the eval() function in >Expression but instead use std::vector<double>&. That would remove the >need for checking geometric_dimension to get the size of the array. >
This would be good. It would also improve code safety. >It might also require minimal changes in the code since > >1. We can use that std::vector is contiguous in memory. > >2. We can allow double* as an optional eval version in C++ so as not >to break user code (if we think that's important enough). > Breaking things has never bothered us. Garth >-- >Anders > > >> > changeset: 7441:a80d21459db0 parent: 7440:f6935b64eb40 parent: >> > 7439:cd6e4b6b38a9 user: Anders Logg <l...@simula.no> date: Thu Nov 12 >> > 11:18:57 2009 +0100 files: demo/pde/adaptive-poisson/cpp/README >> > demo/pde/adaptive-poisson/python/demo.py description: merge >> > >> > >> > changeset: 7440:f6935b64eb40 parent: 7431:9edad639d7e7 user: Anders >> > Logg <l...@simula.no> date: Thu Nov 12 11:18:53 2009 +0100 files: >> > dolfin/adaptivity/AdaptiveObjects.cpp dolfin/fem/BoundaryCondition.h >> > dolfin/fem/DirichletBC.h sandbox/misc/cpp/SConstruct >> > sandbox/misc/cpp/main.cpp description: Implement refinement of >> > boundary conditions (untested). >> > >> > ---------------------------------------------------------------------- >> > For more details, visit http://www.fenics.org/hg/dolfin >> > _______________________________________________ >> > DOLFIN-dev mailing list >> > DOLFIN-dev@fenics.org >> > http://www.fenics.org/mailman/listinfo/dolfin-dev >> >> _______________________________________________ >> DOLFIN-dev mailing list >> DOLFIN-dev@fenics.org >> http://www.fenics.org/mailman/listinfo/dolfin-dev > _______________________________________________ DOLFIN-dev mailing list DOLFIN-dev@fenics.org http://www.fenics.org/mailman/listinfo/dolfin-dev