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