/[escript]/trunk/escript/py_src/linearPDEs.py
ViewVC logotype

Diff of /trunk/escript/py_src/linearPDEs.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 431 by gross, Fri Jan 13 05:07:10 2006 UTC revision 531 by gross, Wed Feb 15 08:11:10 2006 UTC
# Line 1532  class LinearPDE(object): Line 1532  class LinearPDE(object):
1532         if not self.__operator_is_Valid or not self.__righthandside_isValid:         if not self.__operator_is_Valid or not self.__righthandside_isValid:
1533            if self.isUsingLumping():            if self.isUsingLumping():
1534                if not self.__operator_is_Valid:                if not self.__operator_is_Valid:
1535                   if not self.getFunctionSpaceForEquation()==self.getFunctionSpaceForSolution(): raise TypeError,"Lumped matrix requires same order for equations and unknowns"                   if not self.getFunctionSpaceForEquation()==self.getFunctionSpaceForSolution():
1536                   if not self.getCoefficientOfGeneralPDE("A").isEmpty(): raise Warning,"Using coefficient A in lumped matrix can produce wrong results"                        raise TypeError,"Lumped matrix requires same order for equations and unknowns"
1537                   if not self.getCoefficientOfGeneralPDE("B").isEmpty(): raise Warning,"Using coefficient B in lumped matrix can produce wrong results"                   if not self.getCoefficientOfGeneralPDE("A").isEmpty():
1538                   if not self.getCoefficientOfGeneralPDE("C").isEmpty(): raise Warning,"Using coefficient C in lumped matrix can produce wrong results"                        raise ValueError,"coefficient A in lumped matrix may not be present."
1539                   mat=self.__getNewOperator()                   if not self.getCoefficientOfGeneralPDE("B").isEmpty():
1540                   self.getDomain().addPDEToSystem(mat,escript.Data(), \                        raise ValueError,"coefficient A in lumped matrix may not be present."
1541                             self.getCoefficientOfGeneralPDE("A"), \                   if not self.getCoefficientOfGeneralPDE("C").isEmpty():
1542                             self.getCoefficientOfGeneralPDE("B"), \                        raise ValueError,"coefficient A in lumped matrix may not be present."
1543                             self.getCoefficientOfGeneralPDE("C"), \                   D=self.getCoefficientOfGeneralPDE("D")
1544                             self.getCoefficientOfGeneralPDE("D"), \                   if not D.isEmpty():
1545                             escript.Data(), \                       if self.getNumSolutions()>1:
1546                             escript.Data(), \                          D_times_e=util.matrixmult(D,numarray.ones((self.getNumSolutions(),)))
1547                             self.getCoefficientOfGeneralPDE("d"), \                       else:
1548                             escript.Data(),\                          D_times_e=D
1549                             self.getCoefficientOfGeneralPDE("d_contact"), \                   else:
1550                             escript.Data())                      D_times_e=escript.Data()
1551                   self.__operator=1./(mat*escript.Data(1,(self.getNumSolutions(),),self.getFunctionSpaceForSolution(),True))                   d=self.getCoefficientOfGeneralPDE("d")
1552                   del mat                   if not d.isEmpty():
1553                         if self.getNumSolutions()>1:
1554                            d_times_e=util.matrixmult(d,numarray.ones((self.getNumSolutions(),)))
1555                         else:
1556                            d_times_e=d
1557                     else:
1558                        d_times_e=escript.Data()
1559                     d_contact=self.getCoefficientOfGeneralPDE("d_contact")
1560                     if not d_contact.isEmpty():
1561                         if self.getNumSolutions()>1:
1562                            d_contact_times_e=util.matrixmult(d_contact,numarray.ones((self.getNumSolutions(),)))
1563                         else:
1564                            d_contact_times_e=d_contact
1565                     else:
1566                        d_contact_times_e=escript.Data()
1567        
1568                     self.__operator=self.__getNewRightHandSide()
1569                     self.getDomain().addPDEToRHS(self.__operator, \
1570                                                  escript.Data(), \
1571                                                  D_times_e, \
1572                                                  d_times_e,\
1573                                                  d_contact_times_e)
1574                     self.__operator=1./self.__operator
1575                   self.trace("New lumped operator has been built.")                   self.trace("New lumped operator has been built.")
1576                   self.__operator_is_Valid=True                   self.__operator_is_Valid=True
1577                if not self.__righthandside_isValid:                if not self.__righthandside_isValid:

Legend:
Removed from v.431  
changed lines
  Added in v.531

  ViewVC Help
Powered by ViewVC 1.1.26