1 #include <alberta.h>
2 #include "newalberta.hh"
3 #include "heat_problem.hh"
4 #include "operator_parts.hh"
5
6 //#include "header mit PROBLEM_DATA - Definition" muss vor Einbindung passiert sein
7 static const PROB_DATA_DIFF* prob_data_heat=nil;
8 //glaub das ist obsolet
9
10 const REAL Celsius = 273.0; /* th value of 0 degree Celsius */
11
th0(const REAL_D x)12 REAL th0(const REAL_D x) /* initial temperature */
13 {
14 return(723.0/*+Celsius*/);
15 }
16
gth_D(const REAL_D x,REAL t)17 REAL gth_D(const REAL_D x, REAL t) /* external temp */
18 {
19 return(20.0+Celsius);/*dies dient nicht als Dirichlet-Bedingung, sondern Aussentemperatur f die Robin-Bedi
20 ngung!*/
21 }
22
23
gth_N_3(const REAL_D x,REAL t,S_CHAR bound)24 /*static*/ REAL gth_N_3(const REAL_D x, REAL t, S_CHAR bound) /* Robin coef */
25 {
26 FUNCNAME("gth_N_3");
27
28 if (bound == -1 || bound == -6)
29 return(0.1);
30 else
31 return(0.01);
32 }
33
34
35 PROB_DATA_DIFF prob_data_stdheat =
36 {
37 nil
38 ,nil
39 , nil /* order0 u werden ueberschrieben!!*/
40 , DIFFMAT_PW_CONST|DIFFMAT_ISOTROP|MASS_CONST
41 ,{0.0, 0.077, 0.084,/*latent_heat pearl, Martensit*/ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, //phys. konstanten. Feld is eher f. phase gedacht
42 nil , th0,gth_D, gth_N_3, //f_nosource ist eigentlich zu nix gut
43
44 nil , nil, /* th_ex, grd_th_ex */
45 };
46
47
init_problem_stdheat(const PROB_DATA_DIFF ** return_prob_data_heat)48 void init_problem_stdheat(const PROB_DATA_DIFF **return_prob_data_heat)
49 {
50 FUNCNAME("init_problem_stdheat");
51 REAL diffkoeff=1.0; //....naja
52 prob_data_stdheat.diffmat = new constmat(diffkoeff);
53 // prob_data_stdheat.flags = DIFFMAT_PW_CONST;
54 // hier nach is constant. also hier setzen
55 /*prob_data->*/prob_data_heat = *return_prob_data_heat
56 =(const PROB_DATA_DIFF *)&prob_data_stdheat;
57
58 }
59