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: |