~njansson/dolfin/hpc

« back to all changes in this revision

Viewing changes to src/kernel/pde/NonlinearPDE.cpp

  • Committer: Anders Logg
  • Date: 2007-01-10 09:04:44 UTC
  • mfrom: (1689.1.221 trunk)
  • Revision ID: logg@simula.no-20070110090444-ecyux3n1qnei4i8h
RemoveĀ oldĀ head

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
// Copyright (C) 2005 Garth N. Wells.
2
2
// Licensed under the GNU GPL Version 2.
3
3
//
 
4
// Modified by Anders Logg 2006.
 
5
//
4
6
// First added:  2005-10-24
5
 
// Last changed: 2006-02-24
 
7
// Last changed: 2006-10-20
6
8
 
7
9
#include <dolfin/FEM.h>
8
10
#include <dolfin/NonlinearPDE.h>
29
31
  // Do nothing 
30
32
}
31
33
//-----------------------------------------------------------------------------
32
 
void NonlinearPDE::form(Matrix& A, Vector& b, const Vector& x)
 
34
void NonlinearPDE::form(GenericMatrix& A, GenericVector& b, const GenericVector& x)
33
35
{
34
36
  if(!_a)
35
37
  {  
41
43
    if(_bc) 
42
44
    { 
43
45
      FEM::applyBC(A, *_mesh, _a->test(), *_bc);
44
 
      FEM::assembleBCresidual(b, x, *_mesh, _Lf->test(), *_bc);
 
46
      FEM::applyResidualBC(b, x, *_mesh, _Lf->test(), *_bc);
45
47
    }
46
48
    else
47
49
    {
48
 
      //FIXME: Deal with zero Neumann condition on entire boundary her. Need to fix FEM::assembleBCresidual 
49
 
      // FEM::assembleBCresidual(b, x, *_mesh, _Lf->test());
 
50
      //FIXME: Deal with zero Neumann condition on entire boundary here. Need to
 
51
      //fix FEM::assembleResidualFEM::assembleResidualBC(b, x, *_mesh, _Lf->test());
50
52
      dolfin_error("Pure zero Neumann boundary conditions not yet implemented for nonlinear PDE.");
51
53
    }
52
54
  }
53
55
  
54
56
}
55
57
//-----------------------------------------------------------------------------
56
 
//void NonlinearPDE::F(Vector& b, const Vector& x)
 
58
//void NonlinearPDE::F(GenericVector& b, const GenericVector& x)
57
59
//{
58
60
//  dolfin_error("Nonlinear PDE update for F(u)  has not been supplied by
59
61
//user.");
60
62
//}
61
63
//-----------------------------------------------------------------------------
62
 
//void NonlinearPDE::J(Matrix& A, const Vector& x)
 
64
//void NonlinearPDE::J(GenericMatrix& A, const GenericVector& x)
63
65
//{
64
66
//  dolfin_error("Nonlinear PDE update for Jacobian has not been supplied by
65
67
//user.");