/[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 1137 by gross, Thu May 10 08:11:31 2007 UTC revision 1204 by gross, Sat Jun 23 11:43:12 2007 UTC
# Line 1682  class LinearPDE(object): Line 1682  class LinearPDE(object):
1682                        raise ValueError,"coefficient B in lumped matrix may not be present."                        raise ValueError,"coefficient B in lumped matrix may not be present."
1683                   if not self.getCoefficientOfGeneralPDE("C").isEmpty():                   if not self.getCoefficientOfGeneralPDE("C").isEmpty():
1684                        raise ValueError,"coefficient C in lumped matrix may not be present."                        raise ValueError,"coefficient C in lumped matrix may not be present."
1685                     if not self.getCoefficientOfGeneralPDE("d_contact").isEmpty():
1686                          raise ValueError,"coefficient d_contact in lumped matrix may not be present."
1687                   if not self.getCoefficientOfGeneralPDE("A_reduced").isEmpty():                   if not self.getCoefficientOfGeneralPDE("A_reduced").isEmpty():
1688                        raise ValueError,"coefficient A_reduced in lumped matrix may not be present."                        raise ValueError,"coefficient A_reduced in lumped matrix may not be present."
1689                   if not self.getCoefficientOfGeneralPDE("B_reduced").isEmpty():                   if not self.getCoefficientOfGeneralPDE("B_reduced").isEmpty():
1690                        raise ValueError,"coefficient B_reduced in lumped matrix may not be present."                        raise ValueError,"coefficient B_reduced in lumped matrix may not be present."
1691                   if not self.getCoefficientOfGeneralPDE("C_reduced").isEmpty():                   if not self.getCoefficientOfGeneralPDE("C_reduced").isEmpty():
1692                        raise ValueError,"coefficient C_reduced in lumped matrix may not be present."                        raise ValueError,"coefficient C_reduced in lumped matrix may not be present."
1693                     if not self.getCoefficientOfGeneralPDE("d_contact_reduced").isEmpty():
1694                          raise ValueError,"coefficient d_contact_reduced in lumped matrix may not be present."
1695                   D=self.getCoefficientOfGeneralPDE("D")                   D=self.getCoefficientOfGeneralPDE("D")
1696                     d=self.getCoefficientOfGeneralPDE("d")
1697                     D_reduced=self.getCoefficientOfGeneralPDE("D_reduced")
1698                     d_reduced=self.getCoefficientOfGeneralPDE("d_reduced")
1699                   if not D.isEmpty():                   if not D.isEmpty():
1700                       if self.getNumSolutions()>1:                       if self.getNumSolutions()>1:
1701                          D_times_e=util.matrix_mult(D,numarray.ones((self.getNumSolutions(),)))                          D_times_e=util.matrix_mult(D,numarray.ones((self.getNumSolutions(),)))
# Line 1696  class LinearPDE(object): Line 1703  class LinearPDE(object):
1703                          D_times_e=D                          D_times_e=D
1704                   else:                   else:
1705                      D_times_e=escript.Data()                      D_times_e=escript.Data()
                  d=self.getCoefficientOfGeneralPDE("d")  
1706                   if not d.isEmpty():                   if not d.isEmpty():
1707                       if self.getNumSolutions()>1:                       if self.getNumSolutions()>1:
1708                          d_times_e=util.matrix_mult(d,numarray.ones((self.getNumSolutions(),)))                          d_times_e=util.matrix_mult(d,numarray.ones((self.getNumSolutions(),)))
# Line 1704  class LinearPDE(object): Line 1710  class LinearPDE(object):
1710                          d_times_e=d                          d_times_e=d
1711                   else:                   else:
1712                      d_times_e=escript.Data()                      d_times_e=escript.Data()
1713                   d_contact=self.getCoefficientOfGeneralPDE("d_contact")        
                  if not d_contact.isEmpty():  
                      if self.getNumSolutions()>1:  
                         d_contact_times_e=util.matrixmult(d_contact,numarray.ones((self.getNumSolutions(),)))  
                      else:  
                         d_contact_times_e=d_contact  
                  else:  
                     d_contact_times_e=escript.Data()  
       
                  self.__operator=self.__getNewRightHandSide()  
                  self.getDomain().addPDEToRHS(self.__operator, \  
                                               escript.Data(), \  
                                               D_times_e, \  
                                               d_times_e,\  
                                               d_contact_times_e)  
                  D_reduced=self.getCoefficientOfGeneralPDE("D_reduced")  
1714                   if not D_reduced.isEmpty():                   if not D_reduced.isEmpty():
1715                       if self.getNumSolutions()>1:                       if self.getNumSolutions()>1:
1716                          D_reduced_times_e=util.matrix_mult(D_reduced,numarray.ones((self.getNumSolutions(),)))                          D_reduced_times_e=util.matrix_mult(D_reduced,numarray.ones((self.getNumSolutions(),)))
# Line 1727  class LinearPDE(object): Line 1718  class LinearPDE(object):
1718                          D_reduced_times_e=D_reduced                          D_reduced_times_e=D_reduced
1719                   else:                   else:
1720                      D_reduced_times_e=escript.Data()                      D_reduced_times_e=escript.Data()
                  d_reduced=self.getCoefficientOfGeneralPDE("d_reduced")  
1721                   if not d_reduced.isEmpty():                   if not d_reduced.isEmpty():
1722                       if self.getNumSolutions()>1:                       if self.getNumSolutions()>1:
1723                          d_reduced_times_e=util.matrix_mult(d_reduced,numarray.ones((self.getNumSolutions(),)))                          d_reduced_times_e=util.matrix_mult(d_reduced,numarray.ones((self.getNumSolutions(),)))
# Line 1735  class LinearPDE(object): Line 1725  class LinearPDE(object):
1725                          d_reduced_times_e=d_reduced                          d_reduced_times_e=d_reduced
1726                   else:                   else:
1727                      d_reduced_times_e=escript.Data()                      d_reduced_times_e=escript.Data()
1728                   d_contact_reduced=self.getCoefficientOfGeneralPDE("d_contact_reduced")  
                  if not d_contact_reduced.isEmpty():  
                      if self.getNumSolutions()>1:  
                         d_contact_reduced_times_e=util.matrixmult(d_contact_reduced,numarray.ones((self.getNumSolutions(),)))  
                      else:  
                         d_contact_reduced_times_e=d_contact_reduced  
                  else:  
                     d_contact_reduced_times_e=escript.Data()  
       
1729                   self.__operator=self.__getNewRightHandSide()                   self.__operator=self.__getNewRightHandSide()
1730                   self.getDomain().addPDEToRHS(self.__operator, \                   if hasattr(self.getDomain(), "addPDEToLumpedSystem") :
1731                                                escript.Data(), \                      self.getDomain().addPDEToLumpedSystem(self.__operator, D_times_e, d_times_e)
1732                                                D_times_e, \                      self.getDomain().addPDEToLumpedSystem(self.__operator, D_reduced_times_e, d_reduced_times_e)
1733                                                d_times_e,\                   else:
1734                                                d_contact_times_e)                      self.getDomain().addPDEToRHS(self.__operator, \
1735                   self.getDomain().addPDEToRHS(self.__operator, \                                                   escript.Data(), \
1736                                                escript.Data(), \                                                   D_times_e, \
1737                                                D_reduced_times_e, \                                                   d_times_e,\
1738                                                d_reduced_times_e,\                                                   escript.Data())
1739                                                d_contact_reduced_times_e)                      self.getDomain().addPDEToRHS(self.__operator, \
1740                                                     escript.Data(), \
1741                                                     D_reduced_times_e, \
1742                                                     d_reduced_times_e,\
1743                                                     escript.Data())
1744                   self.__operator=1./self.__operator                   self.__operator=1./self.__operator
1745                   self.trace("New lumped operator has been built.")                   self.trace("New lumped operator has been built.")
1746                   self.__operator_is_Valid=True                   self.__operator_is_Valid=True

Legend:
Removed from v.1137  
changed lines
  Added in v.1204

  ViewVC Help
Powered by ViewVC 1.1.26