/[escript]/branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp
ViewVC logotype

Diff of /branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp

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

trunk/finley/src/CPPAdapter/MeshAdapter.cpp revision 4800 by caltinay, Wed Mar 26 01:50:04 2014 UTC branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp revision 4940 by caltinay, Thu May 15 01:40:06 2014 UTC
# Line 752  void MeshAdapter::addPDEToSystem( Line 752  void MeshAdapter::addPDEToSystem(
752          throw FinleyAdapterException("finley only supports Paso system matrices.");          throw FinleyAdapterException("finley only supports Paso system matrices.");
753    
754      Mesh* mesh=m_finleyMesh.get();      Mesh* mesh=m_finleyMesh.get();
755      Paso_SystemMatrix* S = smat->getPaso_SystemMatrix();      paso::SystemMatrix_ptr S(smat->getPaso_SystemMatrix());
756      Assemble_PDE(mesh->Nodes, mesh->Elements, S, rhs, A, B, C, D, X, Y);      Assemble_PDE(mesh->Nodes, mesh->Elements, S, rhs, A, B, C, D, X, Y);
757      checkFinleyError();      checkFinleyError();
758    
# Line 795  void MeshAdapter::addPDEToRHS(escript::D Line 795  void MeshAdapter::addPDEToRHS(escript::D
795          const escript::Data& y_contact, const escript::Data& y_dirac) const          const escript::Data& y_contact, const escript::Data& y_dirac) const
796  {  {
797      Mesh* mesh=m_finleyMesh.get();      Mesh* mesh=m_finleyMesh.get();
798      Assemble_PDE(mesh->Nodes, mesh->Elements, 0, rhs,      Assemble_PDE(mesh->Nodes, mesh->Elements, paso::SystemMatrix_ptr(), rhs,
799              escript::Data(), escript::Data(), escript::Data(), escript::Data(),              escript::Data(), escript::Data(), escript::Data(), escript::Data(),
800              X, Y);              X, Y);
801      checkFinleyError();      checkFinleyError();
802    
803      Assemble_PDE(mesh->Nodes, mesh->FaceElements, 0, rhs,      Assemble_PDE(mesh->Nodes, mesh->FaceElements, paso::SystemMatrix_ptr(),
804              escript::Data(), escript::Data(), escript::Data(), escript::Data(),              rhs, escript::Data(), escript::Data(), escript::Data(),
805              escript::Data(), y);              escript::Data(), escript::Data(), y);
806      checkFinleyError();      checkFinleyError();
807    
808      Assemble_PDE(mesh->Nodes, mesh->ContactElements, 0, rhs,      Assemble_PDE(mesh->Nodes, mesh->ContactElements, paso::SystemMatrix_ptr(),
809              escript::Data(), escript::Data(), escript::Data(),              rhs, escript::Data(), escript::Data(), escript::Data(),
810              escript::Data(), escript::Data(), y_contact);              escript::Data(), escript::Data(), y_contact);
811      checkFinleyError();      checkFinleyError();
812    
813      Assemble_PDE(mesh->Nodes, mesh->Points, 0, rhs,      Assemble_PDE(mesh->Nodes, mesh->Points, paso::SystemMatrix_ptr(), rhs,
814              escript::Data(), escript::Data(), escript::Data(), escript::Data(),              escript::Data(), escript::Data(), escript::Data(), escript::Data(),
815              escript::Data(), y_dirac);              escript::Data(), y_dirac);
816      checkFinleyError();      checkFinleyError();
# Line 834  void MeshAdapter::addPDEToTransportProbl Line 834  void MeshAdapter::addPDEToTransportProbl
834      source.expand();      source.expand();
835    
836      Mesh* mesh=m_finleyMesh.get();      Mesh* mesh=m_finleyMesh.get();
837      Paso_TransportProblem* _tp = tpa->getPaso_TransportProblem();      paso::TransportProblem_ptr _tp(tpa->getPaso_TransportProblem());
838    
839      Assemble_PDE(mesh->Nodes, mesh->Elements, _tp->mass_matrix, source,      Assemble_PDE(mesh->Nodes, mesh->Elements, _tp->mass_matrix, source,
840                          escript::Data(), escript::Data(), escript::Data(),                          escript::Data(), escript::Data(), escript::Data(),
# Line 1455  escript::ASM_ptr MeshAdapter::newSystemM Line 1455  escript::ASM_ptr MeshAdapter::newSystemM
1455      }      }
1456    
1457      // generate matrix:      // generate matrix:
1458      paso::SystemMatrixPattern* fsystemMatrixPattern=      paso::SystemMatrixPattern_ptr pattern = getFinley_Mesh()->getPattern(
1459          getFinley_Mesh()->getPattern(reduceRowOrder, reduceColOrder);              reduceRowOrder, reduceColOrder);
1460      checkFinleyError();      checkFinleyError();
1461      Paso_SystemMatrix* fsystemMatrix;      paso::SystemMatrix_ptr fsystemMatrix;
1462      const int trilinos = 0;      const int trilinos = 0;
1463      if (trilinos) {      if (trilinos) {
1464  #ifdef TRILINOS  #ifdef TRILINOS
1465          // FIXME: Allocation Epetra_VrbMatrix here...          // FIXME: Allocation Epetra_VrbMatrix here...
1466  #endif  #endif
1467      } else {      } else {
1468          fsystemMatrix=Paso_SystemMatrix_alloc(type, fsystemMatrixPattern,          fsystemMatrix.reset(new paso::SystemMatrix(type, pattern,
1469                  row_blocksize, column_blocksize, FALSE);                              row_blocksize, column_blocksize, false));
1470      }      }
1471      checkPasoError();      checkPasoError();
     paso::SystemMatrixPattern_free(fsystemMatrixPattern);  
1472      SystemMatrixAdapter* sma=new SystemMatrixAdapter(fsystemMatrix, row_blocksize, row_functionspace, column_blocksize, column_functionspace);      SystemMatrixAdapter* sma=new SystemMatrixAdapter(fsystemMatrix, row_blocksize, row_functionspace, column_blocksize, column_functionspace);
1473      return escript::ASM_ptr(sma);      return escript::ASM_ptr(sma);
1474  }  }
# Line 1494  escript::ATP_ptr MeshAdapter::newTranspo Line 1493  escript::ATP_ptr MeshAdapter::newTranspo
1493      }      }
1494    
1495      // generate transport problem:      // generate transport problem:
1496      paso::SystemMatrixPattern* fsystemMatrixPattern=      paso::SystemMatrixPattern_ptr pattern = getFinley_Mesh()->getPattern(
1497          getFinley_Mesh()->getPattern(reduceOrder, reduceOrder);              reduceOrder, reduceOrder);
1498      checkFinleyError();      checkFinleyError();
1499      Paso_TransportProblem* transportProblem;      paso::TransportProblem_ptr transportProblem(new paso::TransportProblem(
1500      transportProblem=Paso_TransportProblem_alloc(fsystemMatrixPattern, blocksize);                                                  pattern, blocksize));
1501      checkPasoError();      checkPasoError();
     paso::SystemMatrixPattern_free(fsystemMatrixPattern);  
1502      TransportProblemAdapter* tpa=new TransportProblemAdapter(      TransportProblemAdapter* tpa=new TransportProblemAdapter(
1503              transportProblem, blocksize, functionspace);              transportProblem, blocksize, functionspace);
1504      return escript::ATP_ptr(tpa);      return escript::ATP_ptr(tpa);

Legend:
Removed from v.4800  
changed lines
  Added in v.4940

  ViewVC Help
Powered by ViewVC 1.1.26