AMDiS  0.1
The Adaptive Multi-Dimensional Simulation Toolbox
vecellipt.cc
1 #include <config.h>
3 
4 #include <iostream>
5 
6 #include <amdis/AMDiS.hpp>
7 #include <amdis/LocalOperators.hpp>
8 #include <amdis/ProblemStat.hpp>
10 
12 using namespace AMDiS;
14 
16 using ElliptParam = YaspGridBasis<GRIDDIM, 2,2>;
17 using ElliptProblem = ProblemStat<ElliptParam>;
19 
21 int main(int argc, char** argv)
22 {
23  Environment env(argc, argv);
25 
27  ElliptProblem prob("ellipt");
28  prob.initialize(INIT_ALL);
29 
30  AdaptInfo adaptInfo("adapt");
32 
34  // ⟨∇u₀,∇v₀⟩
35  auto opL = makeOperator(tag::gradtest_gradtrial{}, 1.0);
36  prob.addMatrixOperator(opL, 0, 0);
37 
38  // ⟨u₁,v₀⟩
39  auto opIminus = makeOperator(tag::test_trial{}, -1.0);
40  prob.addMatrixOperator(opIminus, 1, 0);
41 
42  // ⟨u₁,v₁⟩
43  auto opI = makeOperator(tag::test_trial{}, 1.0);
44  prob.addMatrixOperator(opI, 1, 1);
45 
46  // (-1.0,v₀)
47  auto opForce = makeOperator(tag::test{}, [](auto const& x) { return -1.0; }, 0);
48  prob.addVectorOperator(opForce, 0);
50 
51 
53  // set boundary condition
54  auto predicate = [](auto const& x){ return x[0] < 1.e-8 || x[1] < 1.e-8; }; // define boundary
55  auto dbcValues = [](auto const& x){ return 0.0; }; // set value
56  prob.addDirichletBC(predicate, 0, 0, dbcValues);
58 
60  prob.buildAfterAdapt(adaptInfo, Flag(0));
61  prob.solve(adaptInfo);
62  prob.writeFiles(adaptInfo);
64 
66  return 0;
67 }
Definition: SecondOrderGradTestGradTrial.hpp:19
auto makeOperator(Tag tag, Expr &&expr, QuadratureArgs &&... args)
Store tag and expression into a PreGridFunctionOperator to create a GridFunctionOperator.
Definition: GridFunctionOperator.hpp:220
The Flag class encapsulates flags which represents simple information. Used e.g. while mesh traversal...
Definition: Flag.hpp:13
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
Establishes an environment for sequential and parallel AMDiS programs.
Definition: Environment.hpp:19
Definition: ProblemStat.hpp:52
Definition: ZeroOrderTestTrial.hpp:17
Definition: ZeroOrderTest.hpp:17
Holds adapt parameters and infos about the problem.
Definition: AdaptInfo.hpp:25
Specialization of LagrangeBasis for Grid type Dune::YaspGrid for a given dimension.
Definition: ProblemStatTraits.hpp:118