[22819] | 1 | Index: ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp (revision 22793)
|
---|
| 4 | +++ ../trunk-jpl/src/c/cores/controladm1qn3_core.cpp (revision 22794)
|
---|
| 5 | @@ -105,6 +105,7 @@
|
---|
| 6 | if(X[index]>XU[index]) X[index]=XU[index];
|
---|
| 7 | if(X[index]<XL[index]) X[index]=XL[index];
|
---|
| 8 | }
|
---|
| 9 | + N_add+=N[c];
|
---|
| 10 | }
|
---|
| 11 |
|
---|
| 12 | /*Start Tracing*/
|
---|
| 13 | @@ -319,6 +320,7 @@
|
---|
| 14 | X[index] = X[index]/reCast<double>(scaling_factors[c]);
|
---|
| 15 | Gnorm += G[index]*G[index];
|
---|
| 16 | }
|
---|
| 17 | + N_add+=N[c];
|
---|
| 18 | }
|
---|
| 19 | Gnorm = sqrt(Gnorm);
|
---|
| 20 |
|
---|
| 21 | Index: ../trunk-jpl/src/c/classes/Elements/Element.cpp
|
---|
| 22 | ===================================================================
|
---|
| 23 | --- ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 22793)
|
---|
| 24 | +++ ../trunk-jpl/src/c/classes/Elements/Element.cpp (revision 22794)
|
---|
| 25 | @@ -1661,7 +1661,7 @@
|
---|
| 26 | IssmDouble* times = xNew<IssmDouble>(N);
|
---|
| 27 | for(int t=0;t<N;t++) times[t] = vector[(M-1)*N+t];
|
---|
| 28 | /*Create the three transient inputs for the control input*/
|
---|
| 29 | - TransientInput* values_input=new TransientInput(ControlInputValuesEnum,times,N);
|
---|
| 30 | + TransientInput* values_input=new TransientInput(input_enum,times,N);
|
---|
| 31 | TransientInput* mins_input = new TransientInput(ControlInputMinsEnum,times,N);
|
---|
| 32 | TransientInput* maxs_input = new TransientInput(ControlInputMaxsEnum,times,N);
|
---|
| 33 | TransientInput* grad_input = new TransientInput(ControlInputGradEnum);
|
---|
| 34 | @@ -1673,7 +1673,7 @@
|
---|
| 35 | }
|
---|
| 36 | switch(this->ObjectEnum()){
|
---|
| 37 | case TriaEnum:
|
---|
| 38 | - values_input->AddTimeInput(new TriaInput(ControlInputValuesEnum,values,P1Enum));
|
---|
| 39 | + values_input->AddTimeInput(new TriaInput(input_enum,values,P1Enum));
|
---|
| 40 | mins_input->AddTimeInput(new TriaInput(ControlInputMinsEnum,values_min,P1Enum));
|
---|
| 41 | maxs_input->AddTimeInput(new TriaInput(ControlInputMaxsEnum,values_max,P1Enum));
|
---|
| 42 | break;
|
---|
| 43 | Index: ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp
|
---|
| 44 | ===================================================================
|
---|
| 45 | --- ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp (revision 22793)
|
---|
| 46 | +++ ../trunk-jpl/src/c/classes/Inputs/ControlInput.cpp (revision 22794)
|
---|
| 47 | @@ -329,7 +329,7 @@
|
---|
| 48 | if(input->ObjectEnum()!=TransientInputEnum)_error_("cannot have timeoffset argument if not TransientInput Control");
|
---|
| 49 | TransientInput* transient_input = xDynamicCast<TransientInput*>(input);
|
---|
| 50 | IssmDouble time = transient_input->GetTimeByOffset(timeoffset);
|
---|
| 51 | - TransientInput* new_trans_input = new TransientInput(ControlInputValuesEnum);
|
---|
| 52 | + TransientInput* new_trans_input = new TransientInput(this->enum_type);
|
---|
| 53 | for(int i=0;i<transient_input->numtimesteps;i++){
|
---|
| 54 | if(transient_input->timesteps[i]==time) new_trans_input->AddTimeInput(xDynamicCast<TriaInput*>(in_input),time);
|
---|
| 55 | else {
|
---|
| 56 | Index: ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp
|
---|
| 57 | ===================================================================
|
---|
| 58 | --- ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp (revision 22793)
|
---|
| 59 | +++ ../trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp (revision 22794)
|
---|
| 60 | @@ -142,6 +142,11 @@
|
---|
| 61 | input_enum = CalvingStressThresholdGroundediceEnum;
|
---|
| 62 | fieldname=xNew<char>((strlen(field)+1)); xMemCpy<char>(fieldname,field,(strlen(field)+1));
|
---|
| 63 | }
|
---|
| 64 | + else if(strcmp(string_in,"DamageDbar")==0){
|
---|
| 65 | + const char* field = "md.damage.D";
|
---|
| 66 | + input_enum = DamageDbarEnum;
|
---|
| 67 | + fieldname=xNew<char>((strlen(field)+1)); xMemCpy<char>(fieldname,field,(strlen(field)+1));
|
---|
| 68 | + }
|
---|
| 69 | else{
|
---|
| 70 | _error_("Field \""<<string_in<<"\" not supported yet");
|
---|
| 71 | }
|
---|