> On Aug 31, 2015, at 7:36 PM, Justin Chang <[email protected]> wrote:
> 
> Coming back to this,
> 
> Say I now want to ensure the DMP for advection-diffusion equations. The 
> linear operator is now asymmetric and non-self-adjoint (assuming I do 
> something like SUPG or finite volume), meaning I cannot simply solve this 
> problem without any manipulation (e.g. normalizing the equations) using TAO's 
> optimization solvers. Does this statement also hold true for SNESVI?

  SNESVI doesn't care about symmetry etc

> 
> Thanks,
> Justin
> 
> On Fri, Apr 3, 2015 at 7:38 PM, Barry Smith <[email protected]> wrote:
> 
> > On Apr 3, 2015, at 7:35 PM, Justin Chang <[email protected]> wrote:
> >
> > I guess I will have to write my own code then :)
> >
> > I am not all that familiar with Variational Inequalities at the moment, but 
> > if my Jacobian is symmetric and positive definite and I only have lower and 
> > upper bounds, doesn't the problem simply reduce to that of a convex 
> > optimization? That is, with SNES act as if it were Tao?
> 
>   Yes, I think that is essentially correctly.
> 
>   Barry
> 
> >
> > On Fri, Apr 3, 2015 at 6:35 PM, Barry Smith <[email protected]> wrote:
> >
> >   Justin,
> >
> >    We haven't done anything with TS to handle variational inequalities. So 
> > you can either write your own backward Euler (outside of TS) that solves 
> > each time-step problem either as 1) an optimization problem using Tao or 2) 
> > as a variational inequality using SNES.
> >
> >    More adventurously you could look at the TSTHETA code in TS (which is a 
> > general form that includes Euler, Backward Euler and Crank-Nicolson and see 
> > if you can add the constraints to the SNES problem that is solved; in 
> > theory this is straightforward but it would require understanding the 
> > current code (which Jed, of course, overwrote :-). I think you should do 
> > this.
> >
> >   Barry
> >
> >
> > > On Apr 3, 2015, at 12:31 PM, Justin Chang <[email protected]> wrote:
> > >
> > > I am solving the following anisotropic transient diffusion equation 
> > > subject to 0 bounds:
> > >
> > > du/dt = div[D*grad[u]] + f
> > >
> > > Where the dispersion tensor D(x) is symmetric and positive definite. This 
> > > formulation violates the discrete maximum principles so one of the ways 
> > > to ensure nonnegative concentrations is to employ convex optimization. I 
> > > am following the procedures in Nakshatrala and Valocchi (2009) JCP and 
> > > Nagarajan and Nakshatrala (2011) IJNMF.
> > >
> > > The Variational Inequality method works gives what I want for my 
> > > transient case, but what if I want to implement the Tao methodology in 
> > > TS? That is, what TS functions do I need to set up steps a) through e) 
> > > for each time step (also the Jacobian remains the same for all time steps 
> > > so I would only call this once). Normally I would just call TSSolve() and 
> > > let the libraries and functions do everything, but I would like to 
> > > incorporate TaoSolve into every time step.
> > >
> > > Thanks,
> > >
> > > --
> > > Justin Chang
> > > PhD Candidate, Civil Engineering - Computational Sciences
> > > University of Houston, Department of Civil and Environmental Engineering
> > > Houston, TX 77004
> > > (512) 963-3262
> > >
> > > On Thu, Apr 2, 2015 at 6:53 PM, Barry Smith <[email protected]> wrote:
> > >
> > >   An alternative approach is for you to solve it as a (non)linear 
> > > variational inequality. See src/snes/examples/tutorials/ex9.c
> > >
> > >   How you should proceed depends on your long term goal. What problem do 
> > > you really want to solve? Is it really a linear time dependent problem 
> > > with 0 bounds on U? Can the problem always be represented as an 
> > > optimization problem easily? What are  and what will be the properties of 
> > > K? For example if K is positive definite then likely the bounds will 
> > > remain try without explicitly providing the constraints.
> > >
> > >   Barry
> > >
> > > > On Apr 2, 2015, at 6:39 PM, Justin Chang <[email protected]> wrote:
> > > >
> > > > Hi everyone,
> > > >
> > > > I have a two part question regarding the integration of the following 
> > > > optimization problem
> > > >
> > > > min 1/2 u^T*K*u + u^T*f
> > > > S.T. u >= 0
> > > >
> > > > into SNES and TS
> > > >
> > > > 1) For SNES, assuming I am working with a linear FE equation, I have 
> > > > the following algorithm/steps for solving my problem
> > > >
> > > > a) Set an initial guess x
> > > > b) Obtain residual r and jacobian A through functions 
> > > > SNESComputeFunction() and SNESComputeJacobian() respectively
> > > > c) Form vector b = r - A*x
> > > > d) Set Hessian equal to A, gradient to A*x, objective function value to 
> > > > 1/2*x^T*A*x + x^T*b, and variable (lower) bounds to a zero vector
> > > > e) Call TaoSolve
> > > >
> > > > This works well at the moment, but my question is there a more 
> > > > "efficient" way of doing this? Because with my current setup, I am 
> > > > making a rather bold assumption that my problem would converge in one 
> > > > SNES iteration without the bounded constraints and does not have any 
> > > > unexpected nonlinearities.
> > > >
> > > > 2) How would I go about doing the above for time-stepping problems? At 
> > > > each time step, I want to solve a convex optimization subject to the 
> > > > lower bounds constraint. I plan on using backward euler and my 
> > > > resulting jacobian should still be compatible with the above 
> > > > optimization problem.
> > > >
> > > > Thanks,
> > > >
> > > > --
> > > > Justin Chang
> > > > PhD Candidate, Civil Engineering - Computational Sciences
> > > > University of Houston, Department of Civil and Environmental Engineering
> > > > Houston, TX 77004
> > > > (512) 963-3262
> > >
> > >
> > >
> > >
> > > --
> > > Justin Chang
> > > PhD Candidate, Civil Engineering - Computational Sciences
> > > University of Houston, Department of Civil and Environmental Engineering
> > > Houston, TX 77004
> > > (512) 963-3262
> >
> >
> >
> >
> > --
> > Justin Chang
> > PhD Candidate, Civil Engineering - Computational Sciences
> > University of Houston, Department of Civil and Environmental Engineering
> > Houston, TX 77004
> > (512) 963-3262
> 
> 

Reply via email to