代码拉取完成,页面将自动刷新
#include "FEMSpace.h"
#include "Surface.h"
#include <typeinfo>
#include <math.h>
#include <ctime>
#include "Error.h"
#define pi 4.0*atan(1.0)
double f(double *p)
{
return 2 * pi* pi* sin(pi * p[0]) * sin(pi * p[1]);
}
double bc(double *p)
{
return sin(pi * p[0]) * sin(pi * p[1]);
}
double f2(double *p)
{
return 2 * pi* pi* cos(pi * p[0]) * cos(pi * p[1]);
}
double bc2(double *p)
{
return cos(pi * p[0]) * cos(pi * p[1]);
}
int main()
{
//g++ -o main test_eazymesh.cpp -std=c++11 -I /usr/include/eigen3/ ./include/tinyxml2.cpp -g
RectangleDomain* r = new RectangleDomain({{0,0},{1,0},{1,1},{0,1}});
std::vector<Boundary<2> > B = r->boundary();
Mesh<2>* m = new EazyMesh("D");
Element<2>* e = new Triangular_1_Element();
Equation<2>* equ = new PossionEquation<2>();
equ ->SetRightHandsTermFunction(f);
BoundaryFunction<2> * bf = new Dirichlet<2>(bc,B);
BoundaryCondition<2> bfc;
bfc.add(bf);
Possion_2D possionproblem(m,e,equ,bfc);
possionproblem.AssembleStiffMatrix();
possionproblem.AssembleRightHandsTerm();
possionproblem.DealWithBoubdaryCondition();
possionproblem.Solve();
VectorXd u = possionproblem.solution();
Surface_EM S(m,e,u);
S.WriteVTKData("surface");
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。