Skip to content

Commit c16c3fe

Browse files
committed
Update classes
1 parent 30a863a commit c16c3fe

File tree

2 files changed

+92
-133
lines changed

2 files changed

+92
-133
lines changed

src/main/java/it/geoframe/blogspot/buffer/buffertowriter/RichardsBuffer1D.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,36 +91,39 @@ public void solve() {
9191

9292
// water volume
9393
tempVariable.add(inputVariable.get(2).clone());
94+
95+
// saturation degree
96+
tempVariable.add(inputVariable.get(3).clone());
9497

9598
// Darcy velocities
96-
tempVariable.add(inputVariable.get(3).clone());
99+
tempVariable.add(inputVariable.get(4).clone());
97100

98101
// Darcy velocities due to capillary gradient
99-
tempVariable.add(inputVariable.get(4).clone());
102+
tempVariable.add(inputVariable.get(5).clone());
100103

101104
// Darcy velocities due to gravity gradient
102-
tempVariable.add(inputVariable.get(5).clone());
105+
tempVariable.add(inputVariable.get(6).clone());
103106

104107
// pore velocities
105-
tempVariable.add(inputVariable.get(6).clone());
108+
tempVariable.add(inputVariable.get(7).clone());
106109

107110
// celerities
108-
tempVariable.add(inputVariable.get(7).clone());
111+
tempVariable.add(inputVariable.get(8).clone());
109112

110113
// kinematic ratio
111-
tempVariable.add(inputVariable.get(8).clone());
114+
tempVariable.add(inputVariable.get(9).clone());
112115

113116
// errorVolume
114-
tempVariable.add(inputVariable.get(9).clone());
117+
tempVariable.add(inputVariable.get(10).clone());
115118

116119
// top boundary condition value
117-
tempVariable.add(inputVariable.get(10).clone());
120+
tempVariable.add(inputVariable.get(11).clone());
118121

119122
// bottom boundary condition value
120-
tempVariable.add(inputVariable.get(11).clone());
123+
tempVariable.add(inputVariable.get(12).clone());
121124

122125
// surface run-off
123-
tempVariable.add(inputVariable.get(12).clone());
126+
tempVariable.add(inputVariable.get(13).clone());
124127

125128
myVariable.put(inputDate,(ArrayList<double[]>) tempVariable.clone());
126129

src/main/java/it/geoframe/blogspot/buffer/buffertowriter/RichardsBuffer2D.java

Lines changed: 79 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@
2020
package it.geoframe.blogspot.buffer.buffertowriter;
2121

2222
import java.util.ArrayList;
23+
import java.util.Iterator;
2324
import java.util.LinkedHashMap;
2425
import java.util.Map;
26+
import java.util.Map.Entry;
2527

2628
import oms3.annotations.*;
2729

@@ -35,154 +37,108 @@
3537
@License("General Public License Version 3 (GPLv3)")
3638

3739
public class RichardsBuffer2D {
38-
39-
@Description("Varible to store")
40+
41+
@Description("Variable to store")
4042
@In
4143
@Unit ("-")
42-
public ArrayList<double[]> inputVariable;
43-
44+
public ArrayList<ArrayList<Double>> inputVariable;
45+
4446
@Description("Date at which the varible is computed")
4547
@In
4648
@Unit ("YYYY-MM-DD HH:mm")
4749
public String inputDate;
48-
49-
@Description("Spatial coordinate: is the position of the centroids ")
50-
@In
51-
@Unit ("m")
52-
public Map<Integer, Double[]> inputSpatialCoordinate;
53-
50+
5451
@Description("Dual spatial coordinate: is the position of edges ")
5552
@In
5653
@Unit ("m")
5754
public Map<Integer, Double[]> inputDualSpatialCoordinate;
58-
59-
60-
@Description()
61-
@Out
62-
@Unit ()
63-
public LinkedHashMap<String,ArrayList<double[]>> myVariable = new LinkedHashMap<String,ArrayList<double[]>>(); // consider the opportunity to save varibale as float instead of double
64-
65-
@Description()
66-
@Out
67-
@Unit ()
68-
public double[] mySpatialCoordinateX;
69-
70-
@Description()
71-
@Out
72-
@Unit ()
73-
public double[] mySpatialCoordinateZ;
74-
75-
@Description()
76-
@Out
77-
@Unit ()
78-
public double[] myDualSpatialCoordinateX;
79-
55+
56+
@Description("Boolean value controlling the buffer component")
57+
@In
58+
@Unit ("-")
59+
public boolean doProcessBuffer;
60+
61+
@In
62+
public int writeFrequency = 1;
63+
8064
@Description()
8165
@Out
8266
@Unit ()
83-
public double[] myDualSpatialCoordinateZ;
84-
67+
public LinkedHashMap<String,ArrayList<ArrayList<Double>>> variable = new LinkedHashMap<String,ArrayList<ArrayList<Double>>>(); // consider the opportunity to save varibale as float instead of double
68+
69+
8570
@Description("")
8671
int step=0;
87-
88-
ArrayList<double[]> tempVariable;
89-
90-
91-
72+
73+
private ArrayList<ArrayList<Double>> tempVariable;
74+
75+
76+
9277
@Execute
9378
public void solve() {
94-
//System.out.println("Buffer1D step:" + step);
79+
9580
if(step==0){
9681

97-
mySpatialCoordinateX = new double[inputSpatialCoordinate.size()+1];
98-
mySpatialCoordinateZ = new double[inputSpatialCoordinate.size()+1];
99-
100-
myDualSpatialCoordinateX = new double[inputDualSpatialCoordinate.size()+1];
101-
myDualSpatialCoordinateZ = new double[inputDualSpatialCoordinate.size()+1];
102-
103-
for(Integer i : inputSpatialCoordinate.keySet()) {
104-
mySpatialCoordinateX[i] = inputSpatialCoordinate.get(i)[0];
105-
mySpatialCoordinateZ[i] = inputSpatialCoordinate.get(i)[1];
106-
};
82+
tempVariable = new ArrayList<ArrayList<Double>>();
83+
84+
}
85+
86+
if( ((step-1)%writeFrequency) == 0 || step == 1) {
87+
88+
variable.clear();
89+
90+
}
91+
92+
93+
if(doProcessBuffer== true) {
94+
95+
// water suction values
96+
tempVariable.add(new ArrayList<Double>(inputVariable.get(0)));
97+
98+
// water content
99+
tempVariable.add(new ArrayList<Double>(inputVariable.get(1)));
100+
101+
// water volume
102+
tempVariable.add(new ArrayList<Double>(inputVariable.get(2)));
103+
104+
// saturation degree
105+
tempVariable.add(new ArrayList<Double>(inputVariable.get(3)));
106+
107+
// Darcy velocities
108+
tempVariable.add(new ArrayList<Double>(inputVariable.get(4)));
109+
110+
// Darcy velocities x
111+
tempVariable.add(new ArrayList<Double>(inputVariable.get(5)));
107112

108-
for(Integer i : inputDualSpatialCoordinate.keySet()) {
109-
myDualSpatialCoordinateX[i] = inputDualSpatialCoordinate.get(i)[0];
110-
myDualSpatialCoordinateZ[i] = inputDualSpatialCoordinate.get(i)[1];
111-
112-
// System.out.println(myDualSpatialCoordinateX[i] + " " + myDualSpatialCoordinateZ[i]);
113-
};
113+
// Darcy velocities z
114+
tempVariable.add(new ArrayList<Double>(inputVariable.get(6)));
114115

115-
// myDualSpatialCoordinate = ???;
116+
// error volume
117+
tempVariable.add(new ArrayList<Double>(inputVariable.get(7)));
116118

117-
tempVariable = new ArrayList<double[]>();
118-
//System.out.println(mySpatialCoordinate.toString());
119+
// Iterator it;
120+
// // variable.put(inputDate, new ArrayList<ArrayList<Double>>(tempVariable.clone()));
121+
// it = variable.entrySet().iterator();
122+
// while (it.hasNext()) {
123+
// Entry<String, ArrayList<ArrayList<Double>>> entry = (Entry<String, ArrayList<ArrayList<Double>>>) it.next();
124+
//
125+
// System.out.println(entry.getKey() + " psi[1] "+entry.getValue().get(0).get(1)+ " theta[1] "+entry.getValue().get(1).get(1));
126+
// }
127+
128+
129+
variable.put(inputDate, new ArrayList<ArrayList<Double>>(tempVariable));
130+
//
131+
// System.out.println("Buffer "+inputDate);
132+
// System.out.println("psi[1] "+variable.get(inputDate).get(0).get(1));//+" "+variable.get(inputDate).get(0).get(1000)+" "+variable.get(inputDate).get(0).get(2000)+" "+variable.get(inputDate).get(0).get(4000)+" "+variable.get(inputDate).get(0).get(5000));
133+
//
134+
// System.out.println("theta[1] "+variable.get(inputDate).get(1).get(1));//+" "+variable.get(inputDate).get(1).get(1000)+" "+variable.get(inputDate).get(1).get(2000)+" "+variable.get(inputDate).get(1).get(4000)+" "+variable.get(inputDate).get(1).get(5000));
119135

136+
tempVariable.clear();
120137
}
121-
122-
123-
// psiIC
124-
tempVariable.add(inputVariable.get(0).clone());
125-
126-
// water suction values
127-
tempVariable.add(inputVariable.get(1).clone());
128-
129-
// thetas
130-
tempVariable.add(inputVariable.get(2).clone());
131-
132-
// saturation degree
133-
tempVariable.add(inputVariable.get(3).clone());
134-
135-
// Darcy velocities
136-
tempVariable.add(inputVariable.get(4).clone());
137-
// for(int i=0; i<inputVariable.get(2).length; i++) {
138-
// System.out.println(inputVariable.get(2)[i]);
139-
// }
140-
// System.out.println("\\\\\\\\\\\\ \n\n");
141-
// // Darcy velocities x component
142-
tempVariable.add(inputVariable.get(5).clone());
143-
// for(int i=0; i<inputVariable.get(3).length; i++) {
144-
// System.out.println(inputVariable.get(3)[i]);
145-
// }
146-
// System.out.println("\\\\\\\\\\\\ \n\n");
147-
// Darcy velocities z component
148-
tempVariable.add(inputVariable.get(6).clone());
149-
// for(int i=0; i<inputVariable.get(4).length; i++) {
150-
// System.out.println(inputVariable.get(4)[i]);
151-
// }
152-
// // Darcy velocities due to capillary gradient
153-
// tempVariable.add(inputVariable.get(4).clone());
154-
//
155-
// // Darcy velocities due to gravity gradient
156-
// tempVariable.add(inputVariable.get(5).clone());
157-
//
158-
// // pore velocities
159-
// tempVariable.add(inputVariable.get(6).clone());
160-
//
161-
// // celerities
162-
// tempVariable.add(inputVariable.get(7).clone());
163-
//
164-
// // kinematic ratio
165-
// tempVariable.add(inputVariable.get(8).clone());
166-
//
167-
// // errorVolume
168-
// tempVariable.add(inputVariable.get(9).clone());
169-
//
170-
// // top boundary condition value
171-
// tempVariable.add(inputVariable.get(10).clone());
172-
//
173-
// // bottom boundary condition value
174-
// tempVariable.add(inputVariable.get(11).clone());
175-
//
176-
// // surface run-off
177-
// tempVariable.add(inputVariable.get(12).clone());
178-
179-
myVariable.put(inputDate,(ArrayList<double[]>) tempVariable.clone());
180-
//System.out.println(myVariable.size() +" "+ myVariable.keySet());
181-
//System.out.println(myVariable.toString());
182-
tempVariable.clear();
138+
183139
step++;
184-
140+
185141
}
186-
142+
187143

188144
}

0 commit comments

Comments
 (0)