Ignore:
Timestamp:
12/13/18 07:05:22 (6 years ago)
Author:
bdef
Message:

CHG:clean up of old hydro substeping and change in reset of inactive EPL

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r23544 r23546  
    48214821}
    48224822/*}}}*/
    4823 void FemModel::InitTransientOutputx(int* stackedinput_enum,int numoutputs){ /*{{{*/
    4824 
    4825   for(int i=0;i<numoutputs;i++){
    4826                 if(stackedinput_enum[i]<0){
    4827                         _error_("Can't deal with non enum fields for result Stack");
    4828                 }
    4829                 else{
    4830                         for(int j=0;j<elements->Size();j++){
    4831                                 TransientInput* transient_input = new TransientInput(stackedinput_enum[i]);
    4832                                 /*Intermediaries*/
    4833                                 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    4834                                 //transient_input->Configure(element->parameters);
    4835                                 element->inputs->AddInput(transient_input);
    4836                         }
    4837                 }
    4838         }
    4839 }
    4840 /*}}}*/
    4841 void FemModel::StackTransientOutputx(int* input_enum,int* stackedinput_enum,IssmDouble hydrotime,int numoutputs){ /*{{{*/
    4842 
    4843   for(int i=0;i<numoutputs;i++){
    4844                 if(input_enum[i]<0){
    4845                         _error_("Can't deal with non enum fields for result Stack");
    4846                 }
    4847                 else{
    4848                         for(int j=0;j<elements->Size();j++){
    4849                                 /*Intermediaries*/
    4850                                 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    4851                                 TransientInput* stacking_input=NULL;
    4852                                 Input* input=element->inputs->GetInput(stackedinput_enum[i]); _assert_(input); //this is the enum stack
    4853                                 stacking_input=dynamic_cast<TransientInput*>(input);
    4854 
    4855                                 int  numvertices = element->GetNumberOfVertices();
    4856                                 IssmDouble* N=xNew<IssmDouble>(numvertices);
    4857                                 element->GetInputListOnVertices(&N[0],input_enum[i]);   //this is the enum to stack
    4858                                 switch(element->ObjectEnum()){
    4859                                 case TriaEnum:
    4860                                         stacking_input->AddTimeInput(new TriaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    4861                                         break;
    4862                                 case PentaEnum:
    4863                                         stacking_input->AddTimeInput(new PentaInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    4864                                         break;
    4865                                 case TetraEnum:
    4866                                         stacking_input->AddTimeInput(new TetraInput(stackedinput_enum[i],&N[0],P1Enum),hydrotime);
    4867                                         break;
    4868                                 default: _error_("Not implemented yet");
    4869                                 }
    4870                                 xDelete<IssmDouble>(N);
    4871                         }
    4872                 }
    4873         }
    4874 }
    4875 /*}}}*/
    4876 void FemModel::AverageTransientOutputx(int* stackedinput_enum,int* averagedinput_enum,IssmDouble init_time,int numoutputs){ /*{{{*/
    4877 
    4878   for(int i=0;i<numoutputs;i++){
    4879                 if(stackedinput_enum[i]<0){
    4880                         _error_("Can't deal with non enum fields for result Stack");
    4881                 }
    4882                 else{
    4883                         for(int j=0;j<elements->Size();j++){
    4884                                 /*Intermediaries*/
    4885                                 Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(j));
    4886                                 int  numvertices = element->GetNumberOfVertices();
    4887                                 IssmDouble* time_averaged=NULL;
    4888 
    4889                                 Input* input=element->inputs->GetInput(stackedinput_enum[i]); _assert_(input);
    4890                                 TransientInput* stacking_input=NULL;
    4891                                 stacking_input=dynamic_cast<TransientInput*>(input);
    4892                                 stacking_input->GetInputAverageOnTimes(&time_averaged,init_time);
    4893 
    4894                                 element->AddInput(averagedinput_enum[i],&time_averaged[0],P1Enum);
    4895                                 xDelete<IssmDouble>(time_averaged);
    4896                         }
    4897                 }
    4898         }
    4899 }
    4900 /*}}}*/
    49014823void FemModel::InitMeanOutputx(int* stackedinput_enum,int numoutputs){ /*{{{*/
    49024824
Note: See TracChangeset for help on using the changeset viewer.