Commits (6)
......@@ -31,7 +31,11 @@ the build folder ```cmake ..```. CMake generates a Makefile tailored to
your system. Run ```make -j``` to finally build the project.
### Applications of M++
M++ is used as a submodule in different applications:
* MLMC: https://git.scc.kit.edu/yq8188/mlmc
* Tutorial: https://git.scc.kit.edu/yq8188/tutorial
* Cardmech:
\ No newline at end of file
M++ is used as a submodule in different applications. In order to try
some calculations you should follow one of the links below.
* Tutorial for M++ featuring elliptic, hyperbolic and parabolic example
calcualtions: https://git.scc.kit.edu/yq8188/tutorial
* Multilevel Monte Carlo methods implemeted in M++:
https://git.scc.kit.edu/yq8188/mlmc
* Cardmech:
*
\ No newline at end of file
......@@ -222,7 +222,7 @@ public:
return s << D.name;
}
string DiscName() const { return name; }
virtual string DiscName() const { return name; }
string Name_Disc(const cell &c) const {
if (get_cell_deg(c) == 0) return "dGvector_maxwell_FV";
......
......@@ -542,7 +542,7 @@ class RT0_P1DoF : public DoF {
int m;
public:
RT0_P1DoF (int M = 1) : m (M) {
mout << "in RT0DoF with m = " << m << endl;
// mout << "in RT0DoF with m = " << m << endl;
}
int NodalPoints (const cell& c) const {
return c.Corners() + c.Faces();
......@@ -573,7 +573,7 @@ class RT0_P0DoF : public DoF {
int m;
public:
RT0_P0DoF (int M = 1) : m (M) {
mout << "in RT0DoF with m = " << m << endl;
// mout << "in RT0DoF with m = " << m << endl;
}
int NodalPoints (const cell& c) const {
return c.Faces() + 1;
......
......@@ -12,18 +12,17 @@ Newton::Newton (Solver& s)
void Newton::operator () (const Assemble& A, Vector& u) {
Start = Date();
// double E, E_0;
A.Dirichlet (u);
vout (9) << " Newton: u(0)= " << endl << u << endl;
Vector r (u);
Matrix J (u);
d = d_0 = A.Residual (u, r);
// E = E_0 = A.Energy (u);
double eps = Eps + Red * d;
double d_previous = d;
int LS_cnt = 0;
int JU_cnt = 0; // counts iteration steps without Jacobian update
// counts iteration steps without Jacobian update
int JU_cnt = 0;
Vector c (r);
for (iter = 0; iter < max_iter; ++iter) {
......@@ -43,7 +42,6 @@ void Newton::operator () (const Assemble& A, Vector& u) {
u -= c;
vout (5) << " Newton: u-c " << u << endl;
d = A.Residual (u, r);
// E = A.Energy (u);
if (d > d_previous) {
for (int l = 1; l <= LS_iter; ++l) {
if (iter == 0)
......@@ -56,7 +54,6 @@ void Newton::operator () (const Assemble& A, Vector& u) {
c *= 0.5;
u += c;
d = A.Residual (u, r);
// E = A.Energy (u);
if (d < d_previous) break;
}
}
......