vector+time

<< Click to Display Table of Contents >>

Navigation:  Sample Problems > Usage > Variable_Types >

vector+time

Previous pageReturn to chapter overviewNext page

{ VECTOR+TIME.PDE

 

 This example demonstrates the use of Vector variables in time-dependent problems.

 

 A vector variable is controlled by a heat equation.  The X and Y components are given

 source terms consistent with an arbitrarily chosen final result.

 

 This problem is not intended to represent any real application, but is constructed

 merely to demonstrate the use of some features of vector variable support

 in FlexPDE.

 

}

title 'Vector transient heatflow'

Variables

  { declare a vector variable with components Ux and Uy.  

       Each component is expected to have a variation large compared to 0.01 }

   U(0.01) = vector(Ux,Uy)

  { declare a scalar field variable to validate the y-component }

   V(0.01)

           

definitions

    { Define the expected solutions for the components. }

    u0 = (1-x^2-y^2)

    u1 = (1+y+x^3)

    { Define source terms that will result in the programmed solutions }

    s = vector(4,-6*x)

equations

    U: del2(U) +s = dt(U)

    v: del2(v) +ycomp(s) = dt(v)

boundaries

    Region 1

      start 'outer' (-1,-1)

          { Apply a time ramp to the value boundary conditions, so that the

               initial boundary values agree with the initial field values. }

          value(U)=vector(u0,u1)*uramp(t, t-1)

          value(v)=u1*uramp(t, t-1)

      line to (1,-1) to (1,1) to (-1,1) to close

time 0 to 5

plots

    for cycle=10

      { various uses of vector variables in plot statements: }

      contour(Ux, u0)

      contour(Uy, u1)

      contour(v, u1)

      contour(Ux, Uy)

      contour(U)

      vector(U)

      elevation(U, v) from(-1,0) to (1,0)

      history(U, v) at(0,0)

      elevation(u1, Uy, v) on 'outer'

      elevation(u0, Ux) on 'outer'

      elevation(normal(grad(Ux)), normal(grad(u0))) on 'outer'

      elevation(normal(grad(v)), normal(grad(Uy)), normal(grad(u1))) on 'outer'

end