Hi Anna, Please confirm the git revision of your PyOP2. You can retrieve this by typing the following command in the PyOP2 directory: git rev-parse HEAD You should have: d9ea13e1e17fcb1e05adcf1db31bd8190974520d Regards, David On Fri, 16 Sep 2016 at 15:59 Anna Kalogirou <A.Kalogirou@leeds.ac.uk> wrote:
Hi David,
Thank you for the reply. Indeed, the problem was with the virtualenv; I had to deactivate and activate it again. Unfortunately I still get errors, which are probably due to the firedrake I have installed (since you said that it works on your computer):
File "buoy-swe.py", line 89, in <module> F_solver = solver_F(phi0_5, eta1, mu0_5, I, w, phi0, eta0, Z0, W0, step_b, etaR, phi_t, eta_t, mu_t, I_t, v1, v2, v3, v4, dt, Hb, H0, L, dR_dt, g, rho, Mass, solvers_print); File "/Users/matak/Documents/Simulations/Firedrake/Ship/Modules/Mixed system/solvers.py", line 41, in solver_F F_solver = LinearVariationalSolver(F_problem, solver_parameters=solvers_print) File "/Users/matak/firedrake/src/firedrake/firedrake/variational_solver.py", line 264, in __init__ super(LinearVariationalSolver, self).__init__(*args, **kwargs) File "/Users/matak/firedrake/src/firedrake/firedrake/variational_solver.py", line 127, in __init__ ctx = solving_utils._SNESContext(problem) File "/Users/matak/firedrake/src/firedrake/firedrake/solving_utils.py", line 107, in __init__ for problem in problems) File "/Users/matak/firedrake/src/firedrake/firedrake/solving_utils.py", line 107, in <genexpr> for problem in problems) File "/Users/matak/firedrake/src/firedrake/firedrake/assemble.py", line 67, in assemble inverse=inverse, nest=nest) File "<decorator-gen-294>", line 2, in _assemble File "/Users/matak/firedrake/src/firedrake/firedrake/utils.py", line 62, in wrapper return f(*args, **kwargs) File "/Users/matak/firedrake/src/firedrake/firedrake/assemble.py", line 179, in _assemble nest=nest) File "/Users/matak/firedrake/src/PyOP2/pyop2/backends.py", line 118, in __call__ return t(*args, **kwargs) File "/Users/matak/firedrake/src/PyOP2/pyop2/caching.py", line 122, in __new__ args, kwargs = cls._process_args(*args, **kwargs) File "<decorator-gen-258>", line 2, in _process_args File "/Users/matak/firedrake/src/PyOP2/pyop2/utils.py", line 130, in wrapper return f(*args, **kwargs) File "/Users/matak/firedrake/src/PyOP2/pyop2/base.py", line 3591, in _process_args if not (pair[0].toset == dsets[0].set and File "/Users/matak/firedrake/src/PyOP2/pyop2/utils.py", line 64, in __get__ obj.__dict__[self.__name__] = result = self.fget(obj) File "/Users/matak/firedrake/src/PyOP2/pyop2/base.py", line 3372, in toset m.toset for m in self._maps)) File "/Users/matak/firedrake/src/PyOP2/pyop2/caching.py", line 156, in __new__ obj = make_obj() File "/Users/matak/firedrake/src/PyOP2/pyop2/caching.py", line 137, in make_obj obj.__init__(*args, **kwargs) File "/Users/matak/firedrake/src/PyOP2/pyop2/base.py", line 977, in __init__ "All components of a MixedSet must have the same number of layers." AssertionError: All components of a MixedSet must have the same number of layers.
On 16 Sep 2016, at 15:47, David Ham <David.Ham@imperial.ac.uk> wrote:
Hi Anna,
Your code works for me (in the sense that it appears to run without error. I have no idea whether the answer is right ;)
Please also note that Miklos is correct: your error is definitely from a global firedrake install. You can tell because the paths start /usr/local. Your previous error messages are from a local install. You can tell that because the paths start /Users/matak . Are you sure your virtualenv is active?
Regards,
David
On Fri, 16 Sep 2016 at 15:16 Anna Kalogirou <A.Kalogirou@leeds.ac.uk> wrote:
During the past few days I have been working on my laptop (not the desktop at Leeds) and I don’t believe there are multiple installations of firedrake on this machine.
Can someone please try to run my code <https://bitbucket.org/annakalog/buoy2d/src/673fef3466b06c98ac11f5a120ff42117679d41e/Mixed%20system/?at=master> so that we know for sure if the problem is in my code or related with the installation? Thanks.
On 16 Sep 2016, at 14:54, Colin Cotter <colin.cotter@imperial.ac.uk> wrote:
Ah yes, that tallies with Daniel Ruprecht's reports that Firedrake is part of the standard installation at Leeds!
On 16 September 2016 at 14:53, Homolya, Miklós < m.homolya14@imperial.ac.uk> wrote:
It seems that the Firedrake you're importing is a system wide
installation. No wonder that updating your own installation doesn't fix it.
Get Outlook for Android <https://aka.ms/ghei36>
On Thu, Sep 15, 2016 at 8:33 PM +0100, "Anna Kalogirou" < A.Kalogirou@leeds.ac.uk> wrote:
Ok thanks, I get the error below:
Traceback (most recent call last):
File "buoy-swe.py", line 6, in <module>
from firedrake import * File "/usr/local/lib/python2.7/site-packages/firedrake/__init__.py", line 30, in <module> from assemble import * File "/usr/local/lib/python2.7/site-packages/firedrake/assemble.py", line 8, in <module> import assembly_cache File "/usr/local/lib/python2.7/site-packages/firedrake/assembly_cache.py", line 40, in <module> import function File "/usr/local/lib/python2.7/site-packages/firedrake/function.py", line 9, in <module> import assemble_expressions File "/usr/local/lib/python2.7/site-packages/firedrake/assemble_expressions.py", line 15, in <module> import functionspace File "/usr/local/lib/python2.7/site-packages/firedrake/functionspace.py", line 10, in <module> import dmplex ImportError: dlopen(/usr/local/lib/python2.7/site-packages/firedrake/dmplex.so, 2): Library not loaded: /usr/local/lib/python2.7/site-packages/petsc/lib/libpetsc.3.05.2.dylib Referenced from: /usr/local/lib/python2.7/site-packages/firedrake/dmplex.so Reason: image not found
On 15 Sep 2016, at 18:21, Andrew McRae <A.T.T.McRae@bath.ac.uk> wrote:
To give credit where it's due,
s/Andrew's patch/Miklós's patch/
On 15 September 2016 at 18:16, David Ham <David.Ham@imperial.ac.uk> wrote:
I suspect Andrew is correct. However the deeper issue is that you edited
the installed file, which is never a safe thing to do. One must always edit the file in the source directory and then (if necessary) re-install.
Anyway, I have committed Andrew's patch to the repository, so hopefully the problem will go away if you do a git update.
Regards,
David
On Wed, 14 Sep 2016 at 18:39 Andrew McRae <A.T.T.McRae@bath.ac.uk> wrote:
Probably related to installing Firedrake in development mode or not.
I can't help any further here; I don't know if someone else can.
On 14 September 2016 at 16:13, Anna Kalogirou <A.Kalogirou@leeds.ac.uk
wrote:
Ok, so I replace line 3366 in file “ /Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py” with the suggested patch, but I now get the error below.
Note that the error I get comes from file firedrake/lib/python2.7/site-packages/pyop2/base.py while in the reported issue the error comes from firedrake/src/PyOP2/pyop2/base.py so the two might not be related after all.
Thanks, Anna.
Traceback (most recent call last): File "buoy-swe.py", line 89, in <module> F_solver = solver_F(phi0_5, eta1, mu0_5, I, w, phi0, eta0, Z0, W0, step_b, etaR, phi_t, eta_t, mu_t, I_t, v1, v2, v3, v4, dt, Hb, H0, L, dR_dt, g, rho, Mass, solvers_print); File "/Users/matak/Documents/Simulations/Firedrake/Ship/Modules/Mixed system/solvers.py", line 41, in solver_F F_solver = LinearVariationalSolver(F_problem, solver_parameters=solvers_print) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", line 264, in __init__ super(LinearVariationalSolver, self).__init__(*args, **kwargs) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", line 127, in __init__ ctx = solving_utils._SNESContext(problem) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", line 107, in __init__ for problem in problems) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", line 107, in <genexpr> for problem in problems) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", line 67, in assemble inverse=inverse, nest=nest) File "<decorator-gen-294>", line 2, in _assemble File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/utils.py", line 62, in wrapper return f(*args, **kwargs) File "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", line 179, in _assemble nest=nest) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/backends.py", line 118, in __call__ return t(*args, **kwargs) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line 122, in __new__ args, kwargs = cls._process_args(*args, **kwargs) File "<decorator-gen-258>", line 2, in _process_args File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/utils.py", line 130, in wrapper return f(*args, **kwargs) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line 3592, in _process_args if not (pair[0].toset == dsets[0].set and File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/utils.py", line 64, in __get__ obj.__dict__[self.__name__] = result = self.fget(obj) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line 3373, in toset m.toset for m in self._maps)) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line 156, in __new__ obj = make_obj() File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line 137, in make_obj obj.__init__(*args, **kwargs) File "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line 977, in __init__ "All components of a MixedSet must have the same number of layers." AssertionError: All components of a MixedSet must have the same number of layers.
**********************************************************
Dr Anna Kalogirou Research Fellow
Department of Applied Mathematics
University of Leeds
Youtube: https://www.youtube.com/channel/UCUZAYHtVoiMqepQflisp66g
********************************************************** Leverhulme Trust Early Career Fellow 2017-2019
**********************************************************
On 14 Sep 2016, at 16:00, Andrew McRae <A.T.T.McRae@bath.ac.uk> wrote:
Not as a branch, but you can change PyOP2 locally using the code at the bottom of that post, "Suggested patch"
On 14 September 2016 at 15:54, Anna Kalogirou < A.Kalogirou@leeds.ac.uk> wrote:
Hi Andrew, > > Yes indeed, the two might be related. Was there a fix for the issue > reported on github? > > Best, Anna. > > > ********************************************************** >
> Dr Anna Kalogirou > Research Fellow > Department of Applied Mathematics > University of Leeds > > Web: http://www1.maths.leeds.ac.uk/~matak/ > Youtube: https://www.youtube.com/channel/UCUZAYHtVoiMqepQflisp66g > > ********************************************************** > Leverhulme Trust Early Career Fellow 2017-2019 > > ********************************************************** > > > On 13 Sep 2016, at 16:34, Andrew McRae <A.T.T.McRae@bath.ac.uk> > wrote: > > Probably related to > https://github.com/firedrakeproject/firedrake/issues/862 (third > post, not first). You might be able to adapt the fix; I haven't looked in > detail. > > On 12 September 2016 at 16:34, Anna Kalogirou < > A.Kalogirou@leeds.ac.uk> wrote: > > Dear all, >> >> Regarding the problem described in my email sent of Friday, I fixed >> a minor typo and now get the error below. Any ideas what might be causing >> it? Thanks! >> >> Best, Anna. >> >> Traceback (most recent call last): >> File "buoy-swe.py", line 89, in <module> >> F_solver = solver_F(phi0_5, eta1, mu0_5, I, w, phi0, eta0, Z0, >> W0, step_b, etaR, phi_t, eta_t, mu_t, I_t, v1, v2, v3, v4, dt, Hb, H0, L, >> dR_dt, g, rho, Mass, solvers_print); >> File >> "/Users/matak/Documents/Simulations/Firedrake/Ship/Modules/Mixed >> system/solvers.py", line 41, in solver_F >> F_solver = LinearVariationalSolver(F_problem, >> solver_parameters=solvers_print) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", >> line 264, in __init__ >> super(LinearVariationalSolver, self).__init__(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", >> line 127, in __init__ >> ctx = solving_utils._SNESContext(problem) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", >> line 107, in __init__ >> for problem in problems) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", >> line 107, in <genexpr> >> for problem in problems) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", >> line 67, in assemble >> inverse=inverse, nest=nest) >> File "<decorator-gen-294>", line 2, in _assemble >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/utils.py", >> line 62, in wrapper >> return f(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", >> line 163, in _assemble >> map_pairs.append((op2.DecoratedMap(test.cell_node_map(), >> cell_domains), >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/functionspaceimpl.py", >> line 646, in cell_node_map >> for i, s in enumerate(self._spaces)) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/backends.py", >> line 118, in __call__ >> return t(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line >> 156, in __new__ >> obj = make_obj() >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line >> 137, in make_obj >> obj.__init__(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line >> 3342, in __init__ >> if not all(m is None or m.iterset == self.iterset for m in >> self._maps): >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line >> 3342, in <genexpr> >> if not all(m is None or m.iterset == self.iterset for m in >> self._maps): >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/utils.py", line >> 64, in __get__ >> obj.__dict__[self.__name__] = result = self.fget(obj) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line >> 3366, in iterset >> return reduce(lambda a, b: a if a is None else a.iterset or b >> if b is None else b.iterset, self._maps) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line >> 3366, in <lambda> >> return reduce(lambda a, b: a if a is None else a.iterset or b >> if b is None else b.iterset, self._maps) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/base.py", line >> 799, in __getattr__ >> return getattr(self._parent, name) >> AttributeError: 'Set' object has no attribute ‘iterset' >> >> >> ********************************************************** >> > >> Dr Anna Kalogirou >> Research Fellow >> > Department of Applied Mathematics >> University of Leeds >> >> Web: http://www1.maths.leeds.ac.uk/~matak/ >> > Youtube: https://www.youtube.com/channel/UCUZAYHtVoiMqepQflisp66g >> >> ********************************************************** >> Leverhulme Trust Early Career Fellow 2017-2019 >> >> ********************************************************** >> >> >> On 9 Sep 2016, at 17:37, Anna Kalogirou <a.kalogirou@leeds.ac.uk> >> wrote: >> >> Hi David, >> >> I have tried to implement my problem (attached) using the real >> function spaces but I get the error below. The code can be found >> here >> <https://bitbucket.org/annakalog/buoy2d/src/d6a805b6a8d0/Mixed%20system/?at=master> >> . >> >> I define the real space by V_R = FunctionSpace(mesh, "R", 0). Is >> that correct? >> Also, is it a problem that the linear part of the variational form >> does not depend on one of the test functions from the mixed function space >> (only depends on v1, v2, v3 and not v4)? >> >> Best, >> >> Anna. >> >> >> >> Traceback (most recent call last): >> File "buoy-swe.py", line 89, in <module> >> F_solver = solver_F(phi0_5, eta1, mu0_5, I, w, phi0, eta0, Z0, >> W0, step_b, etaR, phi_t, eta_t, mu_t, I_t, v1, v2, v3, v4, dt, Hb, H0, L, >> dR_dt, g, rho, Mass, solvers_print); >> File >> "/Users/matak/Documents/Simulations/Firedrake/Ship/Modules/Mixed >> system/solvers.py", line 41, in solver_F >> F_solver = LinearVariationalSolver(F_problem, >> solver_parameters=solvers_print) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", >> line 264, in __init__ >> super(LinearVariationalSolver, self).__init__(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/variational_solver.py", >> line 127, in __init__ >> ctx = solving_utils._SNESContext(problem) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", >> line 107, in __init__ >> for problem in problems) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/solving_utils.py", >> line 107, in <genexpr> >> for problem in problems) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", >> line 67, in assemble >> inverse=inverse, nest=nest) >> File "<decorator-gen-294>", line 2, in _assemble >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/utils.py", >> line 62, in wrapper >> return f(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/assemble.py", >> line 101, in _assemble >> inverse=inverse) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/tsfc_interface.py", >> line 307, in compile_form >> number_map).kernels >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line >> 198, in __new__ >> obj = make_obj() >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/pyop2/caching.py", line >> 188, in make_obj >> obj.__init__(*args, **kwargs) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/firedrake/tsfc_interface.py", >> line 212, in __init__ >> tree = tsfc_compile_form(form, prefix=name, >> parameters=parameters) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/tsfc/driver.py", line >> 47, in compile_form >> do_estimate_degrees=True) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/compute_form_data.py", >> line 386, in compute_form_data >> check_form_arity(preprocessed_form, >> self.original_form.arguments()) # Currently testing how fast this is >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", >> line 152, in check_form_arity >> check_integrand_arity(itg.integrand(), arguments) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", >> line 145, in check_integrand_arity >> args = map_expr_dag(rules, expr, compress=False) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/corealg/map_dag.py", >> line 37, in map_expr_dag >> result, = map_expr_dags(function, [expression], >> compress=compress) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/corealg/map_dag.py", >> line 86, in map_expr_dags >> r = handlers[v._ufl_typecode_](v, *[vcache[u] for u in >> v.ufl_operands]) >> File >> "/Users/matak/firedrake/lib/python2.7/site-packages/ufl/algorithms/check_arities.py", >> line 42, in sum >> raise ArityMismatch("Adding expressions with non-matching form >> arguments {0} vs {1}.".format(a, b)) >> ufl.algorithms.check_arities.ArityMismatch: Adding expressions with >> non-matching form arguments () vs >> (Argument(WithGeometry(IndexedProxyFunctionSpace(<firedrake.mesh.ExtrudedMeshTopology >> object at 0x113e6b890>, TensorProductElement(FiniteElement('Lagrange', >> interval, 1), FiniteElement('Lagrange', interval, 1), >> cell=TensorProductCell(interval, interval)), name=None, index=0, >> component=None), >> Mesh(VectorElement(TensorProductElement(FiniteElement('Lagrange', interval, >> 1), FiniteElement('Lagrange', interval, 1), >> cell=TensorProductCell(interval, interval)), dim=2), 4)), 1, None),). >> <coupled_system.pdf> >> >> On 18 Aug 2016, at 16:03, David Ham <david.ham@imperial.ac.uk> >> wrote: >> >> Hi Anna, >> >> Real function spaces now pass some simple tests, at least on my >> machine. You need the real-function-space branch of firedrake, and the >> globals_matrices branch of PyOP2. It's not going to get merged before I >> disappear for a week - not least because I need to update documentation. >> However you should be able to test it out on the branches. >> >> Regards, >> >> David >> >> On Wed, 10 Aug 2016 at 16:58 David Ham <David.Ham@imperial.ac.uk> >> wrote: >> >>> Unfortunately, It isn't as simple as saying "no mpi". MPI pervades >>> Firedrake. Unless real function spaces play nicely with communicators, >>> Firedrake will simply crash. I'm sorry that this feature is not available >>> right now, but it actually does require significant work. >>> >>> On Wed, 10 Aug 2016 at 16:51 Anna Kalogirou < >>> A.Kalogirou@leeds.ac.uk> wrote: >>> >>>> Yes indeed, but I believe David would want to make it work for >>>> all cases. The merge is necessary in order to proceed with my simulations, >>>> so an update as soon as possible would be greatly appreciated. >>>> >>>> Best, Anna. >>>> >>>> >>>> On 10 Aug 2016, at 16:29, Onno Bokhove <O.Bokhove@leeds.ac.uk> >>>> wrote: >>>> >>>> We would already be helped for the case without MPI, I think that >>>> is correct, Anna? >>>> >>>> >>>> *From:* firedrake-bounces@imperial.ac.uk < >>>> firedrake-bounces@imperial.ac.uk> on behalf of David Ham < >>>> David.Ham@imperial.ac.uk> >>>> >>>> *Sent:* Wednesday, August 10, 2016 10:01 AM >>>> >>>> >>>> *To:* firedrake >>>> *Subject:* Re: [firedrake] Mixed system >>>> >>>> The short version is it depends on when I find some time to work >>>> on it. It is not simply the case that we have new features lying around >>>> waiting to be merged. The current proximate issue is to make the real >>>> spaces work properly with MPI communicators. I can't guarantee that will be >>>> the last issue. >>>> >>>> >>>> On Tue, 9 Aug 2016 at 17:37 Onno Bokhove <O.Bokhove@leeds.ac.uk> >>>> wrote: >>>> >>>>> It is possible to merge the branch for the mixed system >>>>> relatively soon? >>>>> Anna's results are relevant for the grant application Colin and >>>>> I aim to submit in Sept. on further wave-ship modelling. >>>>> Sorry for asking! >>>>> ------------------------------ >>>>> *From:* firedrake-bounces@imperial.ac.uk < >>>>> firedrake-bounces@imperial.ac.uk> on behalf of David Ham < >>>>> David.Ham@imperial.ac.uk> >>>>> *Sent:* Friday, August 5, 2016 11:37:23 AM >>>>> *To:* firedrake >>>>> *Subject:* Re: [firedrake] Mixed system >>>>> >>>>> >>>>> >>>>> On Fri, 5 Aug 2016 at 11:31 Anna Kalogirou < >>>>> a.kalogirou@leeds.ac.uk> wrote: >>>>> >>>>>> Hi Kramer, >>>>>> >>>>>> Thank you for the reply. >>>>>> >>>>>> The only problem I see with the solution you suggest, is that >>>>>> both I and >>>>>> lambda will be trial functions, so both terms should be on the >>>>>> bilinear >>>>>> part of the variational form. >>>>>> >>>>> >>>>> Not quite. I and lambda together form a Function in a mixed >>>>> finite element space. You solve for both of them together, just like >>>>> pressure and velocity in a fluid simulation. >>>>> >>>>> >>>>>> >>>>>> I could, of course, define a residual and solve everything using >>>>>> nonlinear solvers, but I don't know how efficient that would be. >>>>>> >>>>> >>>>> I think you are confused. None of the relevant issues change in >>>>> the nonlinear case. After all, the nonlinear solver will differentiate the >>>>> residual to create a bilinear form anyway. >>>>> >>>>> Incidentally, there is no particular reason to believe that >>>>> writing the problem in nonlinear form would be inefficient. >>>>> >>>>> Regards, >>>>> >>>>> David >>>>> >>>>> >>>>>> >>>>>> Best, >>>>>> >>>>>> Anna. >>>>>> >>>>>> Dr Anna Kalogirou >>>>>> Research Fellow >>>>>> School of Mathematics >>>>>> University of Leeds >>>>>> >>>>>> http://www1.maths.leeds.ac.uk/~matak/ >>>>>> >>>>>> On 04/08/16 17:29, Stephan Kramer wrote: >>>>>> > On 27/07/16 11:01, Anna Kalogirou wrote: >>>>>> >> Dear all, >>>>>> >> >>>>>> >> I am trying to solve the system found in the attached pdf as >>>>>> a mixed >>>>>> >> system. I want to solve the same >>>>>> >> problem as the one found here >>>>>> >> < >>>>>> https://bitbucket.org/annakalog/buoy2d/src/14334d3c20b9f10ed7c1246cde9e3cb60... >>>>>> >, >>>>>> >> >>>>>> >> but with the use of Schur complements and not linear algebra. >>>>>> >> >>>>>> >> In a previous discussion about this problem, Lawrence >>>>>> mentioned that the >>>>>> >> test function for integral(lambda*Theta(x-Lp)dx) needs to be >>>>>> considered >>>>>> >> as coming from the real space of constant functions. Could >>>>>> you please >>>>>> >> elaborate on this? >>>>>> > >>>>>> > My guess at what Lawrence means is (it's how I would probably >>>>>> approach >>>>>> > it), is that you add an additional equation that says >>>>>> > >>>>>> > (1) I = integral(lambda*Theta(x-Lp)dx) >>>>>> > >>>>>> > and then substitute I in your third equation. Equation (1) can >>>>>> > be turned into a finite element weak formulation by >>>>>> considering the >>>>>> > function space of functions that are constant over the entire >>>>>> domain >>>>>> > This function space is just 1-dimensional and therefore >>>>>> equivalent to >>>>>> > the space of reals R and hence we denote this function space >>>>>> of >>>>>> > constants simply as R. Then we can consider I to be a trial >>>>>> function >>>>>> > in R, and with a test function v4 in R, we can write: >>>>>> > >>>>>> > v4*lambda*Theta(x-Lp)*dx == v4*I*dx/area(domain) >>>>>> > >>>>>> > This is a proper finite element equation that you could solve >>>>>> in >>>>>> > conjuction with the other equations. I believe however that >>>>>> this >>>>>> > function space R is not currently implemented in Firedrake. >>>>>> It is >>>>>> > available in fenics, and is on the wishlist. >>>>>> > >>>>>> > Cheers >>>>>> > Stephan >>>>>> > >>>>>> > _______________________________________________ >>>>>> > firedrake mailing list >>>>>> > firedrake@imperial.ac.uk >>>>>> > https://mailman.ic.ac.uk/mailman/listinfo/firedrake >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> firedrake mailing list >>>>>> firedrake@imperial.ac.uk >>>>>> https://mailman.ic.ac.uk/mailman/listinfo/firedrake >>>>>> >>>>> _______________________________________________ >>>> firedrake mailing list >>>> firedrake@imperial.ac.uk >>>> https://mailman.ic.ac.uk/mailman/listinfo/firedrake >>>> >>>> _______________________________________________ >> firedrake mailing list >> firedrake@imperial.ac.uk >> https://mailman.ic.ac.uk/mailman/listinfo/firedrake >> >> _______________________________________________ >> firedrake mailing list >> firedrake@imperial.ac.uk >> https://mailman.ic.ac.uk/mailman/listinfo/firedrake >> >> _______________________________________________ > firedrake mailing list > firedrake@imperial.ac.uk > https://mailman.ic.ac.uk/mailman/listinfo/firedrake > > _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
_______________________________________________
firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
--
http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake