Ice Sheet System Model  4.18
Code documentation
Public Member Functions | Private Member Functions | Private Attributes
Inputs2 Class Reference

Declaration of Inputs class. More...

#include <Inputs2.h>

Public Member Functions

 Inputs2 ()
 
 Inputs2 (int nbe, int nbv)
 
 ~Inputs2 ()
 
void AddInput (Input2 *in_input)
 
void ChangeEnum (int enumtype, int new_enumtype)
 
void Configure (Parameters *parameters)
 
Inputs2Copy (void)
 
int DeleteInput (int enum_type)
 
void DuplicateInput (int original_enum, int new_enum)
 
void DeepEcho (void)
 
void Echo (void)
 
bool Exist (int enum_type)
 
void GetInputsInterpolations (int *pnuminputs, int **pinterpolations, int **penum)
 
void GetArray (int enum_in, int row, IssmDouble **pvalues, int *pN)
 
void GetArrayPtr (int enum_in, int row, IssmDouble **pvalues, int *pN)
 
SegInput2GetSegInput (int enum_type)
 
TriaInput2GetTriaInput (int enum_type)
 
TriaInput2GetTriaInput (int enum_type, IssmDouble time)
 
TriaInput2GetTriaInput (int enum_in, IssmDouble start_time, IssmDouble end_time, int averaging_method)
 
PentaInput2GetPentaInput (int enum_type)
 
PentaInput2GetPentaInput (int enum_type, IssmDouble time)
 
PentaInput2GetPentaInput (int enum_in, IssmDouble start_time, IssmDouble end_time, int averaging_method)
 
TransientInput2GetTransientInput (int enum_type)
 
ElementInput2GetControlInput2Data (int enum_type, const char *data)
 
DatasetInput2GetDatasetInput2 (int enum_type)
 
ControlInput2GetControlInput2 (int enum_type)
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
int GetInputObjectEnum (int enum_type)
 
void GetInputValue (bool *pvalue, int enum_in, int index)
 
void GetInputValue (int *pvalue, int enum_in, int index)
 
void GetInputValue (IssmDouble *pvalue, int enum_in, int index)
 
void ResultInterpolation (int *pinterpolation, int *nodesperelement, int *parray_size, int output_enum)
 
void SetInput (int enum_in, int index, bool value)
 
void SetInput (int enum_in, int index, int value)
 
void SetDoubleInput (int enum_in, int index, IssmDouble value)
 
void SetTransientInput (int enum_in, IssmDouble *times, int numtimes)
 
TransientInput2SetDatasetTransientInput (int enum_in, int id, IssmDouble *times, int numtimes)
 
void SetArrayInput (int enum_in, int row, IssmDouble *layers, int numlayers)
 
void SetTriaControlInput (int enum_in, int layout, int interpolation, int id, int numindices, int *indices, IssmDouble *values, IssmDouble *values_min, IssmDouble *values_max)
 
void SetTriaControlInputGradient (int enum_in, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetTriaControlInputGradient (int enum_in, int interpolation, int numindices, int *indices, IssmDouble *values, int n)
 
void SetTriaDatasetInput (int enum_in, int id, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetTriaInput (int enum_in, int interpolation, int row, IssmDouble values)
 
void SetTriaInput (int enum_in, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetTriaInput (int enum_in, int interpolation, int row, int numindices, IssmDouble *values)
 
void SetPentaControlInput (int enum_in, int layout, int interpolation, int id, int numindices, int *indices, IssmDouble *values, IssmDouble *values_min, IssmDouble *values_max)
 
void SetPentaControlInputGradient (int enum_in, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetPentaDatasetInput (int enum_in, int id, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetPentaInput (int enum_in, int interpolation, int row, IssmDouble values)
 
void SetPentaInput (int enum_in, int interpolation, int numindices, int *indices, IssmDouble *values)
 
void SetPentaInput (int enum_in, int interpolation, int row, int numindices, IssmDouble *values)
 

Private Member Functions

int EnumToIndex (int enum_in)
 

Private Attributes

Input2inputs [NUMINPUTS]
 
int numberofelements_local
 
int numberofvertices_local
 

Detailed Description

Declaration of Inputs class.

Declaration of Inputs class. Inputs are a static array of Input objects.

Definition at line 23 of file Inputs2.h.

Constructor & Destructor Documentation

◆ Inputs2() [1/2]

Inputs2::Inputs2 ( void  )

Definition at line 30 of file Inputs2.cpp.

30  {/*{{{*/
31 
32  this->numberofelements_local = 0;
33  this->numberofvertices_local = 0;
34 
35  /*Initialize pointers*/
36  for(int i=0;i<NUMINPUTS;i++) this->inputs[i] = NULL;
37 }

◆ Inputs2() [2/2]

Inputs2::Inputs2 ( int  nbe,
int  nbv 
)

Definition at line 39 of file Inputs2.cpp.

39  {/*{{{*/
40 
41  this->numberofelements_local = nbe;
42  this->numberofvertices_local = nbv;
43 
44  /*Initialize pointers*/
45  for(int i=0;i<NUMINPUTS;i++) this->inputs[i] = NULL;
46 }

◆ ~Inputs2()

Inputs2::~Inputs2 ( )

Definition at line 48 of file Inputs2.cpp.

48  {/*{{{*/
49  for(int i=0;i<NUMINPUTS;i++){
50  if(this->inputs[i]) delete this->inputs[i];
51  }
52  return;
53 }

Member Function Documentation

◆ EnumToIndex()

int Inputs2::EnumToIndex ( int  enum_in)
private

Definition at line 229 of file Inputs2.cpp.

229  {/*{{{*/
230 
231  _assert_(this);
232 
233  /*Make sure this parameter is at the right place*/
234  #ifdef _ISSM_DEBUG_
235  if(enum_in<=InputsSTARTEnum){
236  //int* temp = xNew<int>(3);
237  _error_("Enum "<<EnumToStringx(enum_in)<<" should appear after InputsSTARTEnum");
238  }
239  if(enum_in>=InputsENDEnum){
240  _error_("Enum "<<EnumToStringx(enum_in)<<" should appear before InputsENDEnum");
241  }
242  #endif
243  return enum_in - InputsSTARTEnum -1;
244 }/*}}}*/

◆ AddInput()

void Inputs2::AddInput ( Input2 in_input)

Definition at line 147 of file Inputs2.cpp.

147  {/*{{{*/
148 
149  /*Get Enum from Param*/
150  _assert_(newinput);
151  int input_enum = newinput->InstanceEnum();
152 
153  /*Get index in array*/
154  #ifdef _ISSM_DEBUG_
155  if(input_enum<=InputsSTARTEnum) _error_("Cannot add input: Enum "<<EnumToStringx(input_enum)<<" should appear after InputsSTARTEnum");
156  if(input_enum>=InputsENDEnum) _error_("Cannot add input: Enum "<<EnumToStringx(input_enum)<<" should appear before InputsENDEnum");
157  #endif
158  int index = input_enum - InputsSTARTEnum -1;
159 
160  /*Delete input if it already exists*/
161  if(this->inputs[index]){
162  delete this->inputs[index];
163  this->inputs[index] = NULL;
164  }
165 
166  /*Add input to array*/
167  this->inputs[index] = newinput;
168 }

◆ ChangeEnum()

void Inputs2::ChangeEnum ( int  enumtype,
int  new_enumtype 
)

Definition at line 170 of file Inputs2.cpp.

170  {/*{{{*/
171 
172  /*Get indices from enums*/
173  int index_old = EnumToIndex(oldenumtype);
174  int index_new = EnumToIndex(newenumtype);
175 
176  /*Delete input if it already exists*/
177  if(this->inputs[index_new]) delete this->inputs[index_new];
178 
179  /*Make sure that old one exists*/
180  if(!this->inputs[index_old]){
181  _error_("Input "<<EnumToStringx(oldenumtype)<<" not found");
182  }
183 
184  /*Replace Enums*/
185  this->inputs[index_old]->ChangeEnum(newenumtype);
186  this->inputs[index_new] = this->inputs[index_old];
187  this->inputs[index_old] = NULL;
188 }/*}}}*/

◆ Configure()

void Inputs2::Configure ( Parameters parameters)

Definition at line 189 of file Inputs2.cpp.

189  {/*{{{*/
190  for(int i=0;i<NUMINPUTS;i++){
191  if(this->inputs[i]) this->inputs[i]->Configure(parameters);
192  }
193 }

◆ Copy()

Inputs2 * Inputs2::Copy ( void  )

Definition at line 56 of file Inputs2.cpp.

56  {/*{{{*/
57 
59 
60  for(int i=0;i<NUMINPUTS;i++){
61  if(this->inputs[i]) output->inputs[i]=this->inputs[i]->copy();
62  }
63 
64  return output;
65 }/*}}}*/

◆ DeleteInput()

int Inputs2::DeleteInput ( int  enum_type)

Definition at line 195 of file Inputs2.cpp.

195  {/*{{{*/
196 
197  int index = EnumToIndex(input_enum);
198  if(this->inputs[index]){
199  delete this->inputs[index];
200  this->inputs[index] = NULL;
201  }
202 
203  return 1;
204 }

◆ DuplicateInput()

void Inputs2::DuplicateInput ( int  original_enum,
int  new_enum 
)

Definition at line 206 of file Inputs2.cpp.

206  {/*{{{*/
207 
208  _assert_(this);
209 
210  /*Get indices from enums*/
211  int index_ori = EnumToIndex(original_enum);
212  int index_new = EnumToIndex(new_enum);
213 
214  /*Delete input if it already exists*/
215  if(this->inputs[index_new]) delete this->inputs[index_new];
216 
217  /*Make sure that old one exists*/
218  if(!this->inputs[index_ori]){
219  _error_("Input "<<EnumToStringx(original_enum)<<" not found");
220  }
221 
222  /*Make a copy*/
223  Input2* copy=this->inputs[index_ori]->copy();
224 
225  /*Add copy*/
226  this->inputs[index_new] = copy;
227 }

◆ DeepEcho()

void Inputs2::DeepEcho ( void  )

Definition at line 66 of file Inputs2.cpp.

66  {/*{{{*/
67  for(int i=0;i<NUMINPUTS;i++) {
68  if(this->inputs[i]) this->inputs[i]->DeepEcho();
69  }
70  return;
71 }

◆ Echo()

void Inputs2::Echo ( void  )

Definition at line 73 of file Inputs2.cpp.

73  {/*{{{*/
74  _printf_("Inputs Echo:\n");
75  for(int i=0;i<NUMINPUTS;i++) {
76  if(this->inputs[i]) _printf_(setw(25)<<EnumToStringx(i+InputsSTARTEnum+1)<<": set as "<<EnumToStringx(this->inputs[i]->ObjectEnum())<<"\n");
77  }
78  return;
79 }

◆ Exist()

bool Inputs2::Exist ( int  enum_type)

Definition at line 245 of file Inputs2.cpp.

245  {/*{{{*/
246 
247  _assert_(this);
248 
249  int index = EnumToIndex(enum_in);
250  if(this->inputs[index]) return true;
251  return false;
252 }

◆ GetInputsInterpolations()

void Inputs2::GetInputsInterpolations ( int *  pnuminputs,
int **  pinterpolations,
int **  penum 
)

Definition at line 263 of file Inputs2.cpp.

263  {/*{{{*/
264 
265  /*First count number of inputs*/
266  int count = 0;
267  for(int i=0;i<NUMINPUTS;i++){
268  if(this->inputs[i]) count++;
269  }
270  int numinputs = count;
271 
272  /*Allocate output*/
273  int* interpolations = xNew<int>(count);
274  int* enumlist = xNew<int>(count);
275 
276  /*Go through all inputs and assign interpolation in vector*/
277  count = 0;
278  for(int i=0;i<NUMINPUTS;i++){
279 
280  Input2* input=this->inputs[i];
281  if(!input) continue;
282 
283  enumlist[count] = i+InputsSTARTEnum+1;
284  switch(input->ObjectEnum()){
285  case BoolInput2Enum:
286  case IntInput2Enum:
287  interpolations[count] = input->ObjectEnum();
288  break;
289  case TriaInput2Enum:
290  interpolations[count] = input->GetResultInterpolation();
291  break;
292  default:
293  _error_("Input "<<EnumToStringx(input->ObjectEnum())<<" not supported yet");
294  }
295  count++;
296  }
297  _assert_(count == numinputs);
298 
299  /*Return pointer*/
300  *pnuminputs = numinputs;
301  *pinterpolations = interpolations;
302  *pinputenums = enumlist;
303 
304 }/*}}}*/

◆ GetArray()

void Inputs2::GetArray ( int  enum_in,
int  row,
IssmDouble **  pvalues,
int *  pN 
)

Definition at line 485 of file Inputs2.cpp.

485  {/*{{{*/
486 
487  /*Get input id*/
488  int id = EnumToIndex(enum_in);
489 
490  /*Create it if necessary*/
491  if(this->inputs[id]){
492  if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");
493  }
494  else{
495  _error_("Input "<<EnumToStringx(enum_in)<<" not found");
496  }
497 
498  /*Set input*/
499  ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);
500  input->GetArray(row,pvalues,pN);
501 }/*}}}*/

◆ GetArrayPtr()

void Inputs2::GetArrayPtr ( int  enum_in,
int  row,
IssmDouble **  pvalues,
int *  pN 
)

Definition at line 468 of file Inputs2.cpp.

468  {/*{{{*/
469 
470  /*Get input id*/
471  int id = EnumToIndex(enum_in);
472 
473  /*Create it if necessary*/
474  if(this->inputs[id]){
475  if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return an array");
476  }
477  else{
478  _error_("Input "<<EnumToStringx(enum_in)<<" not found");
479  }
480 
481  /*Set input*/
482  ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);
483  input->GetArrayPtr(row,pvalues,pN);
484 }/*}}}*/

◆ GetSegInput()

SegInput2 * Inputs2::GetSegInput ( int  enum_type)

Definition at line 305 of file Inputs2.cpp.

305  {/*{{{*/
306 
307  _assert_(this);
308 
309  /*Get input id*/
310  int id = EnumToIndex(enum_in);
311 
312  /*Check that it has the right format*/
313  Input2* input = this->inputs[id];
314  if(!input) return NULL;
315 
316  return input->GetSegInput();
317 }/*}}}*/

◆ GetTriaInput() [1/3]

TriaInput2 * Inputs2::GetTriaInput ( int  enum_type)

Definition at line 318 of file Inputs2.cpp.

318  {/*{{{*/
319 
320  _assert_(this);
321 
322  /*Get input id*/
323  int id = EnumToIndex(enum_in);
324 
325  /*Check that it has the right format*/
326  Input2* input = this->inputs[id];
327  if(!input) return NULL;
328 
329  return input->GetTriaInput();
330 }/*}}}*/

◆ GetTriaInput() [2/3]

TriaInput2 * Inputs2::GetTriaInput ( int  enum_type,
IssmDouble  time 
)

Definition at line 331 of file Inputs2.cpp.

331  {/*{{{*/
332 
333  /*Get input id*/
334  int id = EnumToIndex(enum_in);
335 
336  /*Check that it has the right format*/
337  Input2* input = this->inputs[id];
338  if(!input) return NULL;
339 
340  if(input->ObjectEnum()==TransientInput2Enum){
341  return xDynamicCast<TransientInput2*>(input)->GetTriaInput(time);
342  }
343  else{
344  return input->GetTriaInput();
345  }
346 }/*}}}*/

◆ GetTriaInput() [3/3]

TriaInput2 * Inputs2::GetTriaInput ( int  enum_in,
IssmDouble  start_time,
IssmDouble  end_time,
int  averaging_method 
)

Definition at line 347 of file Inputs2.cpp.

347  {/*{{{*/
348 
349  /*Get input id*/
350  int id = EnumToIndex(enum_in);
351 
352  /*Check that it has the right format*/
353  Input2* input = this->inputs[id];
354  if(!input) return NULL;
355 
356  if(input->ObjectEnum()==TransientInput2Enum){
357  return xDynamicCast<TransientInput2*>(input)->GetTriaInput(start_time,end_time,averaging_method);
358  }
359  else{
360  _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
361  }
362 }/*}}}*/

◆ GetPentaInput() [1/3]

PentaInput2 * Inputs2::GetPentaInput ( int  enum_type)

Definition at line 363 of file Inputs2.cpp.

363  {/*{{{*/
364 
365  /*Get input id*/
366  int id = EnumToIndex(enum_in);
367 
368  /*Check that it has the right format*/
369  Input2* input = this->inputs[id];
370  if(!input) return NULL;
371 
372  return input->GetPentaInput();
373 }/*}}}*/

◆ GetPentaInput() [2/3]

PentaInput2 * Inputs2::GetPentaInput ( int  enum_type,
IssmDouble  time 
)

Definition at line 374 of file Inputs2.cpp.

374  {/*{{{*/
375 
376  /*Get input id*/
377  int id = EnumToIndex(enum_in);
378 
379  /*Check that it has the right format*/
380  Input2* input = this->inputs[id];
381  if(!input) return NULL;
382 
383  if(input->ObjectEnum()==TransientInput2Enum){
384  return xDynamicCast<TransientInput2*>(input)->GetPentaInput(time);
385  }
386  else{
387  return input->GetPentaInput();
388  }
389 }/*}}}*/

◆ GetPentaInput() [3/3]

PentaInput2 * Inputs2::GetPentaInput ( int  enum_in,
IssmDouble  start_time,
IssmDouble  end_time,
int  averaging_method 
)

Definition at line 390 of file Inputs2.cpp.

390  {/*{{{*/
391 
392  /*Get input id*/
393  int id = EnumToIndex(enum_in);
394 
395  /*Check that it has the right format*/
396  Input2* input = this->inputs[id];
397  if(!input) return NULL;
398 
399  if(input->ObjectEnum()==TransientInput2Enum){
400  return xDynamicCast<TransientInput2*>(input)->GetPentaInput(start_time,end_time,averaging_method);
401  }
402  else{
403  _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
404  }
405 }/*}}}*/

◆ GetTransientInput()

TransientInput2 * Inputs2::GetTransientInput ( int  enum_type)

Definition at line 406 of file Inputs2.cpp.

406  {/*{{{*/
407 
408  /*Get input id*/
409  int id = EnumToIndex(enum_in);
410 
411  /*Check that it has the right format*/
412  Input2* input = this->inputs[id];
413  if(!input) return NULL;
414 
415  if(input->ObjectEnum() != TransientInput2Enum){
416  _error_("Input "<<EnumToStringx(enum_in)<<" is not an TransientInput2");
417  }
418 
419  /*Cast and return*/
420  TransientInput2* output = xDynamicCast<TransientInput2*>(input);
421  return output;
422 }/*}}}*/

◆ GetControlInput2Data()

ElementInput2 * Inputs2::GetControlInput2Data ( int  enum_type,
const char *  data 
)

Definition at line 423 of file Inputs2.cpp.

423  {/*{{{*/
424 
425  /*Get input id*/
426  int id = EnumToIndex(enum_in);
427 
428  /*Check that it has the right format*/
429  Input2* input = this->inputs[id];
430  if(!input) return NULL;
431  if(input->ObjectEnum() != ControlInput2Enum){
432  _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput2");
433  }
434 
435  /*Cast and return*/
436  return xDynamicCast<ControlInput2*>(input)->GetInput2(data);
437 }/*}}}*/

◆ GetDatasetInput2()

DatasetInput2 * Inputs2::GetDatasetInput2 ( int  enum_type)

Definition at line 438 of file Inputs2.cpp.

438  {/*{{{*/
439 
440  /*Get input id*/
441  int id = EnumToIndex(enum_in);
442 
443  /*Check that it has the right format*/
444  Input2* input = this->inputs[id];
445  if(!input) return NULL;
446  if(input->ObjectEnum() != DatasetInput2Enum){
447  _error_("Input "<<EnumToStringx(enum_in)<<" is not an DatasetInput2");
448  }
449 
450  /*Cast and return*/
451  return xDynamicCast<DatasetInput2*>(input);
452 }/*}}}*/

◆ GetControlInput2()

ControlInput2 * Inputs2::GetControlInput2 ( int  enum_type)

Definition at line 453 of file Inputs2.cpp.

453  {/*{{{*/
454 
455  /*Get input id*/
456  int id = EnumToIndex(enum_in);
457 
458  /*Check that it has the right format*/
459  Input2* input = this->inputs[id];
460  if(!input) return NULL;
461  if(input->ObjectEnum() != ControlInput2Enum){
462  _error_("Input "<<EnumToStringx(enum_in)<<" is not an ControlInput2");
463  }
464 
465  /*Cast and return*/
466  return xDynamicCast<ControlInput2*>(input);
467 }/*}}}*/

◆ Marshall()

void Inputs2::Marshall ( char **  pmarshalled_data,
int *  pmarshalled_data_size,
int  marshall_direction 
)

Definition at line 81 of file Inputs2.cpp.

81  {/*{{{*/
82 
83  int obj_enum=-1;
84  int num_inputs2=0;
85  int index;
86 
88 
89  if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){
90 
91  /*Marshall num_inputs2 first*/
92  for(int i=0;i<NUMINPUTS;i++){
93  if(this->inputs[i]) num_inputs2++;
94  }
95  MARSHALLING(num_inputs2);
96 
97  /*Marshall Parameters one by one now*/
98  for(int i=0;i<NUMINPUTS;i++){
99  if(this->inputs[i]){
100  obj_enum = this->inputs[i]->ObjectEnum();
101  MARSHALLING(i);
102  MARSHALLING(obj_enum);
103  this->inputs[i]->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
104  }
105  }
106  }
107  else{
108 
109  /*Get number of inputs2 marshalled*/
110  MARSHALLING(num_inputs2);
111 
112  /*Recover input2eters one by one*/
113  for(int i=0;i<num_inputs2;i++){
114 
115  /*Recover enum of object first: */
116  MARSHALLING(index);
117  MARSHALLING(obj_enum);
118 
119  if(obj_enum==BoolInput2Enum){
120  BoolInput2* boolinput2=new BoolInput2();
121  boolinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
122  this->inputs[index]=boolinput2;
123  }
124  else if(obj_enum==IntInput2Enum){
125  IntInput2* intinput2=new IntInput2();
126  intinput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
127  this->inputs[index]=intinput2;
128  }
129  else if(obj_enum==TriaInput2Enum){
130  TriaInput2* triainput2=new TriaInput2();
131  triainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
132  this->inputs[index]=triainput2;
133  }
134  else if(obj_enum==PentaInput2Enum){
135  PentaInput2* pentainput2=new PentaInput2();
136  pentainput2->Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
137  this->inputs[index]=pentainput2;
138  }
139  else{
140  _error_("input "<<EnumToStringx(obj_enum)<<" not supported");
141  }
142  }
143  }
144 }

◆ GetInputObjectEnum()

int Inputs2::GetInputObjectEnum ( int  enum_type)

Definition at line 254 of file Inputs2.cpp.

254  {/*{{{*/
255 
256  _assert_(this);
257 
258  int index = EnumToIndex(enum_in);
259  if(!this->inputs[index]) _error_("Input "<<EnumToStringx(enum_in)<<" not found");
260  return this->inputs[index]->ObjectEnum();
261 }

◆ GetInputValue() [1/3]

void Inputs2::GetInputValue ( bool *  pvalue,
int  enum_in,
int  index 
)

Definition at line 502 of file Inputs2.cpp.

502  {/*{{{*/
503 
504  /*Get input id*/
505  int id = EnumToIndex(enum_in);
506 
507  /*Create it if necessary*/
508  if(this->inputs[id]){
509  if(this->inputs[id]->ObjectEnum()!=BoolInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a bool");
510  }
511  else{
512  _error_("Input "<<EnumToStringx(enum_in)<<" not found");
513  }
514 
515  /*Set input*/
516  BoolInput2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);
517  input->GetInput(pvalue,index);
518 }/*}}}*/

◆ GetInputValue() [2/3]

void Inputs2::GetInputValue ( int *  pvalue,
int  enum_in,
int  index 
)

Definition at line 519 of file Inputs2.cpp.

519  {/*{{{*/
520 
521  /*Get input id*/
522  int id = EnumToIndex(enum_in);
523 
524  /*Create it if necessary*/
525  if(this->inputs[id]){
526  if(this->inputs[id]->ObjectEnum()!=IntInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a int");
527  }
528  else{
529  int* temp = xNew<int>(3);
530  _error_("Input "<<EnumToStringx(enum_in)<<" not found");
531  }
532 
533  /*Set input*/
534  IntInput2* input = xDynamicCast<IntInput2*>(this->inputs[id]);
535  input->GetInput(pvalue,index);
536 }/*}}}*/

◆ GetInputValue() [3/3]

void Inputs2::GetInputValue ( IssmDouble pvalue,
int  enum_in,
int  index 
)

Definition at line 537 of file Inputs2.cpp.

537  {/*{{{*/
538 
539  /*Get input id*/
540  int id = EnumToIndex(enum_in);
541 
542  /*Create it if necessary*/
543  if(this->inputs[id]){
544  if(this->inputs[id]->ObjectEnum()!=DoubleInput2Enum) _error_(EnumToStringx(this->inputs[id]->ObjectEnum())<<" cannot return a int");
545  }
546  else{
547  int* temp = xNew<int>(3);
548  _error_("Input "<<EnumToStringx(enum_in)<<" not found");
549  }
550 
551  /*Set input*/
552  DoubleInput2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);
553  input->GetInput(pvalue,index);
554 
555 }/*}}}*/

◆ ResultInterpolation()

void Inputs2::ResultInterpolation ( int *  pinterpolation,
int *  nodesperelement,
int *  parray_size,
int  output_enum 
)

Definition at line 556 of file Inputs2.cpp.

556  {/*{{{*/
557 
558  /*Get input */
559  int index = EnumToIndex(output_enum);
560  Input2* input = this->inputs[index];
561 
562  /*Check that it is found*/
563  if(!input){
564  _error_("Input "<<EnumToStringx(output_enum)<<" not found and cannot be added to model results");
565  }
566 
567  /*Assign output pointer*/
568  *pinterpolation = input->GetResultInterpolation();
569  *pnodesperelement = input->GetResultNumberOfNodes();
570  *parray_size = input->GetResultArraySize();
571 }/*}}}*/

◆ SetInput() [1/2]

void Inputs2::SetInput ( int  enum_in,
int  index,
bool  value 
)

Definition at line 572 of file Inputs2.cpp.

572  {/*{{{*/
573 
574  /*Get input id*/
575  int id = EnumToIndex(enum_in);
576 
577  /*Create it if necessary*/
578  if(this->inputs[id]){
579  if(this->inputs[id]->ObjectEnum()!=BoolInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
580  }
581  else{
582  this->inputs[id] = new BoolInput2(this->numberofelements_local);
583  }
584 
585  /*Set input*/
586  BoolInput2* input = xDynamicCast<BoolInput2*>(this->inputs[id]);
587  input->SetInput(index,value);
588 }/*}}}*/

◆ SetInput() [2/2]

void Inputs2::SetInput ( int  enum_in,
int  index,
int  value 
)

Definition at line 589 of file Inputs2.cpp.

589  {/*{{{*/
590 
591  /*Get input id*/
592  int id = EnumToIndex(enum_in);
593 
594  /*Create it if necessary*/
595  if(this->inputs[id]){
596  if(this->inputs[id]->ObjectEnum()!=IntInput2Enum) _error_("cannot add an int to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
597  }
598  else{
599  this->inputs[id] = new IntInput2(this->numberofelements_local);
600  }
601 
602  /*Set input*/
603  IntInput2* input = xDynamicCast<IntInput2*>(this->inputs[id]);
604  input->SetInput(index,value);
605 }/*}}}*/

◆ SetDoubleInput()

void Inputs2::SetDoubleInput ( int  enum_in,
int  index,
IssmDouble  value 
)

Definition at line 606 of file Inputs2.cpp.

606  {/*{{{*/
607 
608  /*Get input id*/
609  int id = EnumToIndex(enum_in);
610 
611  /*Create it if necessary*/
612  if(this->inputs[id]){
613  if(this->inputs[id]->ObjectEnum()!=DoubleInput2Enum) _error_("cannot add a double to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
614  }
615  else{
616  this->inputs[id] = new DoubleInput2(this->numberofelements_local);
617  }
618 
619  /*Set input*/
620  DoubleInput2* input = xDynamicCast<DoubleInput2*>(this->inputs[id]);
621  input->SetInput(index,value);
622 }/*}}}*/

◆ SetTransientInput()

void Inputs2::SetTransientInput ( int  enum_in,
IssmDouble times,
int  numtimes 
)

Definition at line 676 of file Inputs2.cpp.

676  {/*{{{*/
677 
678  /*Get input id*/
679  int id = EnumToIndex(enum_in);
680 
681  /*Create it if necessary*/
682  if(this->inputs[id]){
683  /*Input already there, make sure it is the right type*/
684  if(this->inputs[id]->ObjectEnum()!=TransientInput2Enum){
685  _error_("cannot add a TransientInput to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
686  }
687  }
688  else{
689  this->inputs[id] = new TransientInput2(enum_in,this->numberofelements_local,this->numberofvertices_local,times,numtimes);
690  }
691 }/*}}}*/

◆ SetDatasetTransientInput()

TransientInput2 * Inputs2::SetDatasetTransientInput ( int  enum_in,
int  id,
IssmDouble times,
int  numtimes 
)

Definition at line 649 of file Inputs2.cpp.

649  {/*{{{*/
650 
651  bool recreate = false;
652  /*Get input id*/
653  int id = EnumToIndex(enum_in);
654 
655  /*Create it if necessary*/
656  if(this->inputs[id]){
657  if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
658  delete this->inputs[id];
659  recreate = true;
660  }
661  }
662  else{
663  recreate = true;
664  }
665 
666  if(recreate){
668  }
669 
670  /*Get Dataset Input now*/
671  DatasetInput2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);
672 
673  /*Create and return transient input*/
674  return input->SetTransientInput(dataset_id,times,numtimes);
675 }/*}}}*/

◆ SetArrayInput()

void Inputs2::SetArrayInput ( int  enum_in,
int  row,
IssmDouble layers,
int  numlayers 
)

Definition at line 623 of file Inputs2.cpp.

623  {/*{{{*/
624 
625  bool recreate = false;
626 
627  /*Get input id*/
628  int id = EnumToIndex(enum_in);
629 
630  /*Create it if necessary*/
631  if(this->inputs[id]){
632  if(this->inputs[id]->ObjectEnum()!=ArrayInput2Enum){
633  delete this->inputs[id];
634  recreate = true;
635  }
636  }
637  else{
638  recreate = true;
639  }
640 
641  if(recreate){
642  this->inputs[id] = new ArrayInput2(this->numberofelements_local);
643  }
644 
645  /*Set input*/
646  ArrayInput2* input = xDynamicCast<ArrayInput2*>(this->inputs[id]);
647  input->SetInput(row,numlayers,values);
648 }/*}}}*/

◆ SetTriaControlInput()

void Inputs2::SetTriaControlInput ( int  enum_in,
int  layout,
int  interpolation,
int  id,
int  numindices,
int *  indices,
IssmDouble values,
IssmDouble values_min,
IssmDouble values_max 
)

Definition at line 692 of file Inputs2.cpp.

692  {/*{{{*/
693 
694  bool recreate = false;
695  /*Get input id*/
696  int id = EnumToIndex(enum_in);
697 
698  /*Create it if necessary*/
699  if(this->inputs[id]){
700  if(this->inputs[id]->ObjectEnum()!=ControlInput2Enum){
701  delete this->inputs[id];
702  recreate = true;
703  }
704  }
705  else{
706  recreate = true;
707  }
708 
709  if(recreate){
710  this->inputs[id] = new ControlInput2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);
711  }
712 
713  /*Set input*/
714  ControlInput2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);
715  input->SetControl(interpolation,numindices,indices,values,values_min,values_max);
716 }/*}}}*/

◆ SetTriaControlInputGradient() [1/2]

void Inputs2::SetTriaControlInputGradient ( int  enum_in,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 717 of file Inputs2.cpp.

717  {/*{{{*/
718 
719  /*Get input id*/
720  int id = EnumToIndex(enum_in);
721 
722  /*Create it if necessary*/
723  if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
724  if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
725 
726  /*Set input*/
727  ControlInput2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);
728  input->SetGradient(interpolation,numindices,indices,values);
729 }/*}}}*/

◆ SetTriaControlInputGradient() [2/2]

void Inputs2::SetTriaControlInputGradient ( int  enum_in,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values,
int  n 
)

Definition at line 730 of file Inputs2.cpp.

730  {/*{{{*/
731 
732  /*Get input id*/
733  int id = EnumToIndex(enum_in);
734 
735  /*Create it if necessary*/
736  if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
737  if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
738 
739  /*Set input*/
740  ControlInput2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);
741  input->SetGradient(interpolation,numindices,indices,values,n);
742 }/*}}}*/

◆ SetTriaDatasetInput()

void Inputs2::SetTriaDatasetInput ( int  enum_in,
int  id,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 743 of file Inputs2.cpp.

743  {/*{{{*/
744 
745  bool recreate = false;
746  /*Get input id*/
747  int id = EnumToIndex(enum_in);
748 
749  /*Create it if necessary*/
750  if(this->inputs[id]){
751  if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
752  delete this->inputs[id];
753  recreate = true;
754  }
755  }
756  else{
757  recreate = true;
758  }
759 
760  if(recreate){
762  }
763 
764  /*Set input*/
765  DatasetInput2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);
766  input->SetTriaInput(id_in,P1Enum,numindices,indices,values);
767 }/*}}}*/

◆ SetTriaInput() [1/3]

void Inputs2::SetTriaInput ( int  enum_in,
int  interpolation,
int  row,
IssmDouble  values 
)

Definition at line 768 of file Inputs2.cpp.

768  {/*{{{*/
769 
770  /*This one only supports P0 and P1 because it assumes col=0*/
771  _assert_(interpolation==P0Enum || interpolation==P1Enum);
772 
773  /*Get input id*/
774  int id = EnumToIndex(enum_in);
775 
776  /*Create it if necessary*/
777  if(this->inputs[id]){
778  if(this->inputs[id]->ObjectEnum()!=TriaInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
779  }
780  else{
781  this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
782  }
783 
784  /*Set input*/
785  TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);
786  input->SetInput(interpolation,row,value);
787 }/*}}}*/

◆ SetTriaInput() [2/3]

void Inputs2::SetTriaInput ( int  enum_in,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 788 of file Inputs2.cpp.

788  {/*{{{*/
789 
790  /*Get input id*/
791  int id = EnumToIndex(enum_in);
792 
793  /*Create it if necessary*/
794  if(this->inputs[id]){
795  if(this->inputs[id]->ObjectEnum()!=TriaInput2Enum){
796  _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum())<<" while trying to set "<<EnumToStringx(enum_in));
797  }
798  }
799  else{
800  this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
801  }
802 
803  /*Set input*/
804  TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);
805  input->SetInput(interpolation,numindices,indices,values);
806 }/*}}}*/

◆ SetTriaInput() [3/3]

void Inputs2::SetTriaInput ( int  enum_in,
int  interpolation,
int  row,
int  numindices,
IssmDouble values 
)

Definition at line 807 of file Inputs2.cpp.

807  {/*{{{*/
808 
809  /*Get input id*/
810  int id = EnumToIndex(enum_in);
811 
812  /*Create it if necessary*/
813  if(this->inputs[id]){
814  if(this->inputs[id]->ObjectEnum()!=TriaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
815  }
816  else{
817  this->inputs[id] = new TriaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
818  }
819 
820  /*Set input*/
821  TriaInput2* input = xDynamicCast<TriaInput2*>(this->inputs[id]);
822  input->SetInput(interpolation,row,numindices,values);
823 }/*}}}*/

◆ SetPentaControlInput()

void Inputs2::SetPentaControlInput ( int  enum_in,
int  layout,
int  interpolation,
int  id,
int  numindices,
int *  indices,
IssmDouble values,
IssmDouble values_min,
IssmDouble values_max 
)

Definition at line 824 of file Inputs2.cpp.

824  {/*{{{*/
825 
826  bool recreate = false;
827  /*Get input id*/
828  int id = EnumToIndex(enum_in);
829 
830  /*Create it if necessary*/
831  if(this->inputs[id]){
832  if(this->inputs[id]->ObjectEnum()!=ControlInput2Enum){
833  delete this->inputs[id];
834  recreate = true;
835  }
836  }
837  else{
838  recreate = true;
839  }
840 
841  if(recreate){
842  this->inputs[id] = new ControlInput2(this->numberofelements_local,this->numberofvertices_local,layout,interpolation,control_id);
843  }
844 
845  /*Set input*/
846  ControlInput2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);
847  input->SetControl(interpolation,numindices,indices,values,values_min,values_max);
848 }/*}}}*/

◆ SetPentaControlInputGradient()

void Inputs2::SetPentaControlInputGradient ( int  enum_in,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 849 of file Inputs2.cpp.

849  {/*{{{*/
850 
851  /*Get input id*/
852  int id = EnumToIndex(enum_in);
853 
854  /*Create it if necessary*/
855  if(!this->inputs[id]) _error_("could not find Input "<<EnumToStringx(enum_in));
856  if( this->inputs[id]->ObjectEnum()!=ControlInput2Enum) _error_("Input "<<EnumToStringx(enum_in)<<" is not a ControlInput2");
857 
858  /*Set input*/
859  ControlInput2* input = xDynamicCast<ControlInput2*>(this->inputs[id]);
860  input->SetGradient(interpolation,numindices,indices,values);
861 }/*}}}*/

◆ SetPentaDatasetInput()

void Inputs2::SetPentaDatasetInput ( int  enum_in,
int  id,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 862 of file Inputs2.cpp.

862  {/*{{{*/
863 
864  bool recreate = false;
865  /*Get input id*/
866  int id = EnumToIndex(enum_in);
867 
868  /*Create it if necessary*/
869  if(this->inputs[id]){
870  if(this->inputs[id]->ObjectEnum()!=DatasetInput2Enum){
871  delete this->inputs[id];
872  recreate = true;
873  }
874  }
875  else{
876  recreate = true;
877  }
878 
879  if(recreate){
881  }
882 
883  /*Set input*/
884  DatasetInput2* input = xDynamicCast<DatasetInput2*>(this->inputs[id]);
885  input->SetPentaInput(id_in,P1Enum,numindices,indices,values);
886 }/*}}}*/

◆ SetPentaInput() [1/3]

void Inputs2::SetPentaInput ( int  enum_in,
int  interpolation,
int  row,
IssmDouble  values 
)

Definition at line 887 of file Inputs2.cpp.

887  {/*{{{*/
888 
889  /*This one only supports P0 and P1 because it assumes col=0*/
890  _assert_(interpolation==P0Enum || interpolation==P1Enum);
891 
892  /*Get input id*/
893  int id = EnumToIndex(enum_in);
894 
895  /*Create it if necessary*/
896  if(this->inputs[id]){
897  if(this->inputs[id]->ObjectEnum()!=PentaInput2Enum) _error_("cannot add a bool to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
898  }
899  else{
900  this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
901  }
902 
903  /*Set input*/
904  PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);
905  input->SetInput(interpolation,row,value);
906 }/*}}}*/

◆ SetPentaInput() [2/3]

void Inputs2::SetPentaInput ( int  enum_in,
int  interpolation,
int  numindices,
int *  indices,
IssmDouble values 
)

Definition at line 907 of file Inputs2.cpp.

907  {/*{{{*/
908 
909  /*Get input id*/
910  int id = EnumToIndex(enum_in);
911 
912  /*Create it if necessary*/
913  if(this->inputs[id]){
914  if(this->inputs[id]->ObjectEnum()!=PentaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
915  }
916  else{
917  this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
918  }
919 
920  /*Set input*/
921  PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);
922  input->SetInput(interpolation,numindices,indices,values);
923 }/*}}}*/

◆ SetPentaInput() [3/3]

void Inputs2::SetPentaInput ( int  enum_in,
int  interpolation,
int  row,
int  numindices,
IssmDouble values 
)

Definition at line 924 of file Inputs2.cpp.

924  {/*{{{*/
925 
926  /*Get input id*/
927  int id = EnumToIndex(enum_in);
928 
929  /*Create it if necessary*/
930  if(this->inputs[id]){
931  if(this->inputs[id]->ObjectEnum()!=PentaInput2Enum) _error_("cannot add Element values to a "<<EnumToStringx(this->inputs[id]->ObjectEnum()));
932  }
933  else{
934  this->inputs[id] = new PentaInput2(this->numberofelements_local,this->numberofvertices_local,interpolation);
935  }
936 
937  /*Set input*/
938  PentaInput2* input = xDynamicCast<PentaInput2*>(this->inputs[id]);
939  input->SetInput(interpolation,row,numindices,values);
940 }/*}}}*/

Field Documentation

◆ inputs

Input2* Inputs2::inputs[NUMINPUTS]
private

Definition at line 27 of file Inputs2.h.

◆ numberofelements_local

int Inputs2::numberofelements_local
private

Definition at line 28 of file Inputs2.h.

◆ numberofvertices_local

int Inputs2::numberofvertices_local
private

Definition at line 29 of file Inputs2.h.


The documentation for this class was generated from the following files:
Inputs2Enum
@ Inputs2Enum
Definition: EnumDefinitions.h:1130
Input2::GetResultArraySize
virtual int GetResultArraySize(void)
Definition: Input2.h:50
IntInput2::SetInput
void SetInput(int index, int value)
Definition: IntInput2.cpp:84
TransientInput2Enum
@ TransientInput2Enum
Definition: EnumDefinitions.h:1315
Input2::GetSegInput
virtual SegInput2 * GetSegInput()
Definition: Input2.h:40
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
DoubleInput2::SetInput
void SetInput(int index, IssmDouble value)
Definition: DoubleInput2.cpp:84
Inputs2::inputs
Input2 * inputs[NUMINPUTS]
Definition: Inputs2.h:27
IntInput2::GetInput
void GetInput(int *pvalue, int index)
Definition: IntInput2.cpp:76
DatasetInput2
Definition: DatasetInput2.h:14
_printf_
#define _printf_(StreamArgs)
Definition: Print.h:22
DatasetInput2Enum
@ DatasetInput2Enum
Definition: EnumDefinitions.h:1031
MARSHALLING_ENUM
#define MARSHALLING_ENUM(EN)
Definition: Marshalling.h:14
PentaInput2::SetInput
void SetInput(int interp_in, int row, IssmDouble value_in)
Definition: PentaInput2.cpp:154
P0Enum
@ P0Enum
Definition: EnumDefinitions.h:661
TransientInput2
Definition: TransientInput2.h:13
ControlInput2
Definition: ControlInput2.h:13
MARSHALLING_SIZE
@ MARSHALLING_SIZE
Definition: Marshalling.h:11
ControlInput2Enum
@ ControlInput2Enum
Definition: EnumDefinitions.h:1018
ControlInput2::SetGradient
void SetGradient(int interp, int numindices, int *indices, IssmDouble *values_in)
Definition: ControlInput2.cpp:124
PentaInput2::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: PentaInput2.cpp:128
BoolInput2::SetInput
void SetInput(int index, bool value)
Definition: BoolInput2.cpp:84
Input2::copy
virtual Input2 * copy()=0
BoolInput2
Definition: BoolInput2.h:7
Input2::ChangeEnum
void ChangeEnum(int newenumtype)
Definition: Input2.h:26
DoubleInput2Enum
@ DoubleInput2Enum
Definition: EnumDefinitions.h:997
DatasetInput2::SetPentaInput
void SetPentaInput(int id, int interp_in, int numinds, int *rows, IssmDouble *values_in)
Definition: DatasetInput2.cpp:134
DatasetInput2::SetTriaInput
void SetTriaInput(int interp_in, int numinds, int *rows, IssmDouble *values_in)
Inputs2::Inputs2
Inputs2()
Definition: Inputs2.cpp:30
NUMINPUTS
#define NUMINPUTS
Definition: Inputs2.h:17
P1Enum
@ P1Enum
Definition: EnumDefinitions.h:662
Inputs2::EnumToIndex
int EnumToIndex(int enum_in)
Definition: Inputs2.cpp:229
Input2::GetPentaInput
virtual PentaInput2 * GetPentaInput()
Definition: Input2.h:42
TriaInput2Enum
@ TriaInput2Enum
Definition: EnumDefinitions.h:1124
Inputs2::numberofvertices_local
int numberofvertices_local
Definition: Inputs2.h:29
DoubleInput2
Definition: DoubleInput2.h:7
ControlInput2::SetControl
void SetControl(int interp, int numindices, int *indices, IssmDouble *values_in, IssmDouble *values_min, IssmDouble *values_max)
Definition: ControlInput2.cpp:113
EnumToStringx
const char * EnumToStringx(int enum_in)
Definition: EnumToStringx.cpp:15
ArrayInput2::GetArrayPtr
void GetArrayPtr(int row, IssmDouble **pvalues, int *pN)
Definition: ArrayInput2.cpp:133
TriaInput2
Definition: TriaInput2.h:8
TriaInput2::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: TriaInput2.cpp:114
ArrayInput2::SetInput
void SetInput(int row, int numinds, IssmDouble *values_in)
Definition: ArrayInput2.cpp:103
MARSHALLING
#define MARSHALLING(FIELD)
Definition: Marshalling.h:29
Object::DeepEcho
virtual void DeepEcho()=0
Input2::GetResultNumberOfNodes
virtual int GetResultNumberOfNodes(void)
Definition: Input2.h:52
Input2::GetTriaInput
virtual TriaInput2 * GetTriaInput()
Definition: Input2.h:41
ArrayInput2
Definition: ArrayInput2.h:7
PentaInput2
Definition: PentaInput2.h:8
Inputs2
Declaration of Inputs class.
Definition: Inputs2.h:23
Input2::Configure
virtual void Configure(Parameters *parameters)
Definition: Input2.h:30
InputsENDEnum
@ InputsENDEnum
Definition: EnumDefinitions.h:966
Object::ObjectEnum
virtual int ObjectEnum()=0
Input2
Definition: Input2.h:18
ArrayInput2::GetArray
void GetArray(int row, IssmDouble **pvalues, int *pN)
Definition: ArrayInput2.cpp:119
ArrayInput2Enum
@ ArrayInput2Enum
Definition: EnumDefinitions.h:1041
DatasetInput2::SetTransientInput
TransientInput2 * SetTransientInput(int id, IssmDouble *times, int numtimes)
Definition: DatasetInput2.cpp:167
PentaInput2Enum
@ PentaInput2Enum
Definition: EnumDefinitions.h:1125
DoubleInput2::GetInput
void GetInput(IssmDouble *pvalue, int index)
Definition: DoubleInput2.cpp:76
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
TriaInput2::SetInput
void SetInput(int interp_in, int row, IssmDouble value_in)
Definition: TriaInput2.cpp:141
Input2::GetResultInterpolation
virtual int GetResultInterpolation(void)
Definition: Input2.h:51
InputsSTARTEnum
@ InputsSTARTEnum
Definition: EnumDefinitions.h:462
MARSHALLING_FORWARD
@ MARSHALLING_FORWARD
Definition: Marshalling.h:9
BoolInput2Enum
@ BoolInput2Enum
Definition: EnumDefinitions.h:995
Inputs2::numberofelements_local
int numberofelements_local
Definition: Inputs2.h:28
BoolInput2::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: BoolInput2.cpp:57
IntInput2
Definition: IntInput2.h:7
Object::Marshall
virtual void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)=0
IntInput2Enum
@ IntInput2Enum
Definition: EnumDefinitions.h:996
BoolInput2::GetInput
void GetInput(bool *pvalue, int index)
Definition: BoolInput2.cpp:76
IntInput2::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: IntInput2.cpp:56