Ben,

Sounds good.  We're not working today... and will be busy all of next week... 
so we might not get a chance to dig into this for a week or so.  Don't think we 
don't care though... this is going to be a nice piece of capability for us!

We'll let you know as soon as we're exercising it.

Derek

On Mar 25, 2011, at 6:45 AM, Kirk, Benjamin (JSC-EG311) wrote:

> I have just checked in some changes to the System class which allow objects, 
> rather than function pointers, for assembly, initialization, and constraints. 
>  I tested it with a modified ex9 whose diff is shown below (not attached to 
> avoid the mailing list filters).
> 
> I'm pretty happy with it, but am open to suggestions.  I intend to do the 
> same thing with the QoI interface but need to know if the "qoi_indices" are 
> variables that need to be passed to the QoI computation functions?
> 
> -Ben
> 
> 
> macbook(42)$ diff ex9.C ex9_object.C
> 66,82c66,102
> < // Function prototype.  This function will assemble the system
> < // matrix and right-hand-side at each time step.  Note that
> < // since the system is linear we technically do not need to
> < // assmeble the matrix at each time step, but we will anyway.
> < // In subsequent examples we will employ adaptive mesh refinement,
> < // and with a changing mesh it will be necessary to rebuild the
> < // system matrix.
> < void assemble_cd (EquationSystems& es,
> <                   const std::string& system_name);
> < 
> < // Function prototype.  This function will initialize the system.
> < // Initialization functions are optional for systems.  They allow
> < // you to specify the initial values of the solution.  If an
> < // initialization function is not provided then the default (0)
> < // solution is provided.
> < void init_cd (EquationSystems& es,
> <               const std::string& system_name);
> ---
>> 
>> 
>> 
>> class Ex9 : public System::Initialization,
>>          public System::Assembly
>> {
>> public: 
>> 
>>  Ex9 (EquationSystems& es_in,
>>       const std::string& system_name_in) :
>>    es(es_in),
>>    system_name(system_name_in) {}
>> 
>> 
>>  // Function prototype.  This function will initialize the system.
>>  // Initialization functions are optional for systems.  They allow
>>  // you to specify the initial values of the solution.  If an
>>  // initialization function is not provided then the default (0)
>>  // solution is provided.
>>  virtual void initialize();
>> 
>>  // Function prototype.  This function will assemble the system
>>  // matrix and right-hand-side at each time step.  Note that
>>  // since the system is linear we technically do not need to
>>  // assmeble the matrix at each time step, but we will anyway.
>>  // In subsequent examples we will employ adaptive mesh refinement,
>>  // and with a changing mesh it will be necessary to rebuild the
>>  // system matrix.
>>  virtual void assemble();
>> 
>> private:
>> 
>>  EquationSystems& es;
>>  const std::string system_name;
>> };
>> 
>> 
> 147a168,169
>>  Ex9 ex9(equation_systems, "Convection-Diffusion");
>> 
> 154,155c176,177
> <   system.attach_assemble_function (assemble_cd);
> <   system.attach_init_function (init_cd);
> ---
>>  system.attach_assemble_object (ex9);
>>  system.attach_init_object (ex9);
> 249,250c271
> < void init_cd (EquationSystems& es,
> <               const std::string& system_name)
> ---
>> void Ex9::initialize ()
> 271,272c292
> < void assemble_cd (EquationSystems& es,
> <                   const std::string& system_name)
> ---
>> void Ex9::assemble ()
> <ex9_object.C>------------------------------------------------------------------------------
> Enable your software for Intel(R) Active Management Technology to meet the
> growing manageability and security demands of your customers. Businesses
> are taking advantage of Intel(R) vPro (TM) technology - will your software 
> be a part of the solution? Download the Intel(R) Manageability Checker 
> today! 
> http://p.sf.net/sfu/intel-dev2devmar_______________________________________________
> Libmesh-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/libmesh-devel


------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to