double ResSolid(struct fe1d *p, matrix *guess, Elem1D *elem, double x, int f1, int f2) { double T = TINIT, C = 0, Ci, Ea, value; int i; basis *b; b = p->b; solution *s; s = CreateSolution(p->t, p->dt, guess); for(i=0; i<b->n; i++) { Ci = EvalSoln1D(p, CVAR, elem, s, valV(elem->points, i)); Ci = uscaleTemp(p->chardiff, Ci); C += C * b->phi[i](x); } Ea = EA(C, T); value = Ea * b->phi[f1](x)*b->phi[f2](x) / IMap1D(p, elem, x); free(s); return value; }
double ResDtSolid(struct fe1d *p, matrix *guess, Elem1D *elem, double x, int f1, int f2) { double T = TINIT, C = 0, Ci, Ea, E, lambda, sigma, term1; int i; basis *b; b = p->b; solution *s; s = CreateSolution(p->t, p->dt, guess); for(i=0; i<b->n; i++) { Ci = EvalSoln1D(p, CVAR, elem, s, valV(elem->points, i)); Ci = uscaleTemp(p->chardiff, Ci); C += Ci; } Ea += EA(C, T); E += E1(C, T); lambda += LAMBDA(C, T); sigma += STRESS(C, T); term1 = lambda*(Ea+E) * b->phi[f1](x)*b->phi[f2](x) / IMap1D(p, elem, x); free(s); return term1; }
ribi::maziak::SolutionMaze::SolutionMaze( const boost::shared_ptr<const DistancesMaze> maze, const int x, const int y ) : m_maze(CreateSolution(maze,x,y)) { #ifndef NDEBUG Test(); #endif }
double ResFSolid(struct fe1d *p, matrix *guess, Elem1D *elem, double x, int f1, int a) { double T = TINIT, C = 0, Cp = 0, Ci, Cpi, lambda, sigma, sigmap, DsigmaDt; int i; solution *s, *sp; basis *b; b = p->b; s = CreateSolution(p->t, p->dt, guess); sp = FetchSolution(p, p->t-1); for(i=0; i<b->n; i++) { Ci = EvalSoln1D(p, CVAR, elem, s, valV(elem->points, i)); Ci = uscaleTemp(p->chardiff, Ci); if(p->t > 1) { Cpi = EvalSoln1D(p, CVAR, elem, sp, valV(elem->points, i)); Cpi = uscaleTemp(p->chardiff, Cpi); } else { Cpi = Ci; } C += Ci; Cp += Cpi; } lambda += LAMBDA(C, T); sigma += STRESS(C, T); sigmap += STRESS(Cp, T); DsigmaDt = (sigma-sigmap)/p->dt; free(s); return sigma - lambda*DsigmaDt; }