On Thu, Mar 13, 2014 at 01:27:36PM +0000, Garth N. Wells wrote:
>
> On 13 Mar 2014, at 13:03, Benjamin Kehlet <[email protected]> wrote:
>
> > Other possible solutions include
> > * Requiring the user to call a init_dolfin() function before doing
> > anything (From python this could be done implicitly when doing "import
> > dolfin”)
>
> I think this is the ‘best’ approach, but others probably won’t like
> a using having to initialise MPI manually in C++.

I think init functions are extremely ugly.

We used to have a dolfin_init function, but it was removed ca 10 years
ago. Here's dolfin.h from that time (not as an argument but just for
the fun of it):

#ifndef __DOLFIN_H
#define __DOLFIN_H

// Data types
typedef double real;
enum bc_type { dirichlet , neumann};

// Boundary conditions
class dolfin_bc{
public:
  dolfin_bc(){ type=neumann; val=0.0; }
  bc_type type;
  real val;
};

// Main function calls
void dolfin_init (int argc, char **argv);
void dolfin_end  ();
void dolfin_solve();

// Specification of problem
void dolfin_set_problem(const char *problem);

// Specification of boundary conditions
void dolfin_set_boundary_conditions(dolfin_bc (*bc)(real x, real y, real z, int 
node, int component));

// Parameters
void dolfin_set_parameter  (const char *identifier, ...);
void dolfin_get_parameter  (const char *identifier, ...);
void dolfin_save_parameters();
void dolfin_save_parameters(const char *filename);
void dolfin_load_parameters();
void dolfin_load_parameters(const char *filename);

// Functions
void dolfin_set_function(const char *identifier,
                         real (*f)(real x, real y, real z, real t));

// For testing internal functions
void dolfin_test();
void dolfin_test_memory();

#endif

> > * Adding calls to init_mpi() in the functions in MPI.h where this is 
> > missing.
> >
>
> This is too low-level. init_mpi() should be called from the highest possible 
> level.

Adding it to Variable would work. It would cost nothing and be easy to
implement.

--
Anders
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to