summaryrefslogtreecommitdiff
path: root/js/PDE/PDE.js
blob: 9676eab62bef53470409fcd11e5bf91b1059f99a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* autogenerated from "macros/PDE/PDE.sci" */
function PDE() {
    PDE.prototype.define = function PDE() {
        model = scicos_model();
        model.state = zeros(10,1);
        model.sim = list("PDE",0);
        model.in1 = [[1],[1],[1],[1],[1]];
        model.out = [[10],[0]];
        model.blocktype = "c";
        model.dep_ut = [false,true];
        params_pde = tlist([["paramspde"],["a"],["b"],["txt_exp"],["check_op1"],["a1"],["b1"],["check_op2"],["a2"],["b2"],["check_op3"],["a3"],["b3"],["check_op4"],["a4"],["b4"],["check_op5"],["a5"],["b5"],["check_op6"],["a6"],["b6"],["check_op7"],["a7"],["b7"],["discr_cst"],["discr_non_cst"],["signe"],["rad_automatique"],["rad_manuel"],["methode"],["ord1"],["ord2"],["ord3"],["degre"],["nnode"],["txt_pas"],["CI"],["dCI"],["CLa"],["CLa_exp"],["CLb"],["CLb_exp"],["points"]],"","","","0","","IN_EDP1(t)","0","","IN_EDP2(t)","0","","IN_EDP3(t)","0","","IN_EDP4(t)","0","","IN_EDP5(t)","0","","IN_EDP6(t)","0","","IN_EDP7(t)","0","0","0","0","0","0","","","","","","","","","0","IN_CL1(t)","0","IN_CL2(t)","");
        label = list(params_pde,[],"");
        gr_i = [];
        x = standard_define([3,3],model,label,gr_i);
    }
    PDE.prototype.details = function PDE() {
    }
    PDE.prototype.get = function PDE() {
    }
    PDE.prototype.set = function PDE() {
        x = arg1;
        graphics = arg1.graphics;
        label = graphics.exprs;
        model = arg1.model;
        params_pde = label[1-1];
        while (true) {
[ln,fun]=where()
        if (!or(fun=="do_eval")) {
        [ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde] = IHM_EDP(params_pde);
        if (ok) {
return;
}
        } else {
        if (exists("%scicos_context")) {
        [ok,a_domaine,b_domaine,discr,signe,choix,type_meth,degre,Nbr_maillage,CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,k,mesures,params_pde] = setvalue_IHM_EDP(params_pde);
}
}
        okk = false;
        rdnom = "PDE";
        ok1 = true;
        while (true) {
        [okk,rdnom,lab] = scicos_getvalue("PLEASE, GIVE US THE BLOCK\'s NAME. ","New block\'s name :",list("str",1),label[3-1]);
        if (okk==false) {
        ok1 = false;
return;
}
        label[3-1] = lab;
        rdnom = stripblanks(rdnom);
        if (rdnom==emptystr()) {
        ok1 = false;
x_message("sorry C file name not defined");
}
        if (ok1) {
break;
}
}
        if ((choix==0)) {
        ind4 = strindex(a4,"x");
        ind1 = strindex(a1,"x");
        ind2 = strindex(a2,"x");
        if ((ind4!=[]||ind1!=[]||ind2!=[])) {
        if ((signe==1)) {
        delta = 1;
        } else if ((signe==2)) {
        delta = -1;
        } else if ((signe==0)) {
        delta = 0;
        } else {
x_message([["le discriminant n\'est pas constant,"],["Vous devez choisir son signe dans l\'IHM"]]);
return;
}
        } else {
        delta = evstr(a4)^2-4*evstr(a1)*evstr(a2);
}
        if ((delta==[])) {
        delta = 0;
}
        type_meth = this.arbre_decision[delta-1];
}
        [flag_type,rdnom,DF_type,tt] = translate(CI,CI1,CLa_type,CLa_exp,CLb_type,CLb_exp,oper,type_meth,degre,a_domaine,b_domaine,Nbr_maillage,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7,rdnom,mesures);
        Nbr = Nbr_maillage;
        if (((CLa_type==1)&&(DF_type==0||DF_type==1))||((CLb_type==1)&&(DF_type==0||DF_type==2))) {
        Nbr = Nbr+1;
}
        if ((mesures==[])) {
        out = Nbr_maillage;
        } else {
        out = [[Nbr_maillage],[size(mesures,"*")]];
}
        if ((flag_type==1)) {
        model.sim = list(rdnom,2004);
        if ((find(oper==1)!=[])) {
        model.state = zeros(2*Nbr_maillage,1);
        } else {
        model.state = zeros(Nbr_maillage,1);
}
        } else if ((flag_type==2)) {
        model.sim = list(rdnom,12004);
        if ((find(oper==1)!=[])) {
        if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) {
        model.state = zeros(6*Nbr_maillage,1);
        } else if ((type_meth==1)) {
        model.state = zeros(4*Nbr,1);
        } else {
        model.state = zeros(4*Nbr_maillage,1);
}
        } else {
        if ((type_meth==3&&(find(oper==2)!=[]||find(oper==4)!=[]))) {
        model.state = zeros(4*Nbr_maillage,1);
        } else if ((type_meth==1)) {
        model.state = zeros(2*Nbr,1);
        } else {
        model.state = zeros(2*Nbr_maillage,1);
}
}
}
        [ok1] = CFORTREDP(rdnom,tt);
        if (!ok1) {
break;
}
        if (!ok) {
        [model,graphics,ok] = check_io(model,graphics,ones(k,1),out.slice(),[],[]);
}
        label[1-1] = params_pde;
        label[2-1] = tt;
        graphics.exprs = label;
        x.graphics = graphics;
        x.model = model;
break;
}
    }
}