⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assemble.h

📁 利用C
💻 H
字号:
#include <dolfin.h>#include "Poisson.h"using namespace dolfin;//-----------------------------------------------------------------------------std::string appendRank(std::string base, std::string ext){  std::stringstream stream;  stream << base << dolfin::MPI::processNumber() << "." << ext;  return stream.str();}void assemble(Mesh& mesh, MeshFunction<dolfin::uint>& partitions, char* filename,              char* plotname){}void check_assembly(Mesh& mesh, MeshFunction<dolfin::uint>& partitions){  // Do normal assembly on process 1  PoissonBilinearForm a;  PoissonBilinearForm b;  Matrix A, B;  if(dolfin::MPI::numProcesses() == 1)  {    Assembler assembler(mesh);    assembler.assemble(A, a, true);  }  // Parallel assembly on all procs  {    pAssembler passembler(mesh, partitions);    passembler.assemble(B, b, true);  }  DofMapSet& dof_map_set = b.dofMaps();  // Would be nice to have automatic testing of B = A * modified dofs  // Currently just printing so that matrices can be manually inspected  PetscViewer viewer_a(PETSC_VIEWER_STDOUT_SELF);  PetscViewerASCIIOpen(PETSC_COMM_WORLD, "A.m", &viewer_a);  //PetscViewerSetFormat(viewer_a, PETSC_VIEWER_ASCII_MATLAB);  MatView(A.mat().mat(), viewer_a);  dolfin::cout << "Mapping: " << dolfin::endl;  std::map<dolfin::uint, dolfin::uint> map = dof_map_set[0].getMap();  for(dolfin::uint i=0; i<map.size(); ++i)  {    dolfin::cout << i << " => " << map[i] << dolfin::endl;  }  PetscViewer viewer(PETSC_VIEWER_STDOUT_WORLD);  PetscViewerASCIIOpen(PETSC_COMM_WORLD, "B.m", &viewer);  //PetscViewerSetFormat(viewer, PETSC_VIEWER_ASCII_MATLAB);  MatView(B.mat().mat(), viewer);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -