On Thu, 9 Sep 2010, Roy Stogner wrote:

> On Thu, 9 Sep 2010, Tim Kroeger wrote:
>
>> My suggestion for an API in libMesh is as follows:
>> 
>> LinearSolver gets a method
>> 
>> LinearSolver::solve_only_on(const std::set<unsigned int>*const)
>> 
>> Likewise, System gets a method
>> 
>> System::solve_only_on(const std::set<subdomain_id_type>*const)
> 
> I like it...
>
> I think I'd prefer to have the std::set arguments limited to dof ids
> and make it a std::vector for subdomain ids.  That way people could do
> a System::solve_only_on for subsets like patches that aren't
> predefined as subdomains.

I don't quite understand what you mean.  That is, the two parts of 
your first sentence seem to contradict each other.  I understand that 
you want

LinearSolver::solve_only_on(const std::set<unsigned int>*const);
System::solve_only_on(const std::set<unsigned int>*const);

where both methods get a std::set of dof ids.  But then again, you say 
you want a std::vector for subdomain ids, and I don't know how this 
fits together.  Ah, perhaps you mean, that there should be *two* 
versions of System::solve_only_on(), one taking a std::set of dof ids, 
and the other like this:

System::solve_only_on(const std::vector<subdomain_id_type>*const);

where using "vector" rather than "set" avoids problems in the case 
that someone defines subdomain_id_type as unsigned int.  Is this what 
you mean?

> Also, we'd like to have the same functionality for nonlinear solves too, but
> it's fine to start with just LinearSolver.

Yes, I don't object if you do this.  (-:

> One question, since I haven't followed the thread closely enough: what
> are the effective boundary conditions on subset boundaries which don't
> correspond to domain boundaries?  The dofs outside the subset would be
> treated as fixed, but neighboring dofs would still make their
> contributions to the subsystem?

Well, as always with boundary conditions, you get what you assemble. 
That is (if using the subdomain_id version), the dofs on the boundary 
of your active domain will be included in the solve, and you can 
assemble whatever you like.  However, for most applications I assume 
that Dirichlet boundary conditions are the only ones that make sense.

Best Regards,

Tim

BTW: I won't start implementing this before next week anyway because 
there are different things to do today.

-- 
Dr. Tim Kroeger
CeVis -- Center of Complex Systems and Visualization
University of Bremen              [email protected]
Universitaetsallee 29             [email protected]
D-28359 Bremen                             Phone +49-421-218-7710
Germany                                    Fax   +49-421-218-4236

------------------------------------------------------------------------------
Automate Storage Tiering Simply
Optimize IT performance and efficiency through flexible, powerful, 
automated storage tiering capabilities. View this brief to learn how
you can reduce costs and improve performance. 
http://p.sf.net/sfu/dell-sfdev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to