dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #19780
Re: [Question #127166]: computing funtionals and setting a flux condition
On Tuesday September 28 2010 05:34:06 Achim Schroll wrote:
> New question #127166 on DOLFIN:
> https://answers.launchpad.net/dolfin/+question/127166
>
> Hi!
>
> Thanks for the new tutorial (aug 2010)!
>
> Ultimately I need to specify a flux condition on a (small) part of the
> boundary as explained in Section 6.3. But, is it true that "it is not
> possible to perform integrals over different parts of the ... boundary
> using ... the VariationalProblem instance"?
This should be possible. Just pass a FacetFunction which marks the different
Boundary domains, as the exterior_facet_domains.
Can you point me to the tutorial. I think I do not have the latest copy.
> Background: I am solving the nonlinear DEMOSTRAT model and want to model
> sediment inflow through a river bed. Just recently, before the summer, I
> updated my code to implement the fully nonlinear system and to use DOLFINs
> features like automatic form building and nonlinearity. I don't want to go
> back to manual linearization etc...
>
> Another detail:
> Any idea what could be wrong when using the code on page 24 to evaluate the
> total flux: n = FacetNormal(mesh)
> flux = -dot(grad(u),n)*ds
> total_flux = assemble(flux)
> A runtime error appears: "Unable to extract mesh from form (no mesh found)"
> when executing the last line.
This because the dolfin::Form which is used to pass the ufc::form to the
assembler only chech the FunctionSpaces of the Test and TrialSpaces for a
mesh. So you need to pass this manually by:
total_flux = assemble(flux, mesh=mesh)
I think it would be convinient to be able to assemble a scalar from a
Function. The mesh is contained in the FunctionSpace so it should be possible.
I then need to figure out if a GenericFunction is a Function or an Expression.
Maybe we can add a has_function_space() method to the GenericFunction
interface?
Johan
> I am runing DOLFIN 0.9.7 under Ubuntu 9.10
>
> Best, Achim
Follow ups
References