8 #define CORRTAGNAME "__correspondent"
15 double la1 = params[0];
16 double te1 = params[1];
17 double la2 = params[2];
18 double te2 = params[3];
21 double hmax = params[6];
28 value += c * hmax / 2 * ( 1 + cos( M_PI * r1 / r ) );
32 value += c * hmax / 2 * ( 1 + cos( M_PI * r2 / r ) );
46 double hmax = params[6];
47 double b0 = params[7];
53 return hmax * ( exp( expo1 ) + exp( expo2 ) );
59 double la1 = params[0];
60 double te1 = params[1];
61 double la2 = params[2];
62 double te2 = params[3];
70 double d1 = fabs( lam - la1 );
71 double d2 = fabs( lam - la2 );
73 double rt5p12 = r * 5 / 12;
75 if( r1 <= r && d1 >= rp6 ) value = c;
76 if( r2 <= r && d2 >= rp6 ) value = c;
77 if( r1 <= r && d1 < rp6 && tet - te1 < -rt5p12 ) value = c;
78 if( r2 <= r && d2 < rp6 && tet - te2 > rt5p12 ) value = c;
101 double sl2 = sin( sph.
lon / 2 );
102 double pit = M_PI *
t /
T;
103 double omega = M_PI /
T;
104 double costetha = cos( sph.
lat );
106 double v = k * sin( sph.
lon ) * costetha * cos( pit );
108 double u_tilda = 2 * k * sl2 * sl2 * sin( sph.
lat ) * cos( pit );
116 ( sl2 * sin( sph.
lat ) * sin( pit ) * omega - u_tilda * sin( sph.
lat ) * cos( pit ) * cos( sph.
lon / 2 ) -
117 v * sl2 * costetha * cos( pit ) );
121 ( sin( sph.
lon ) * cos( sph.
lat ) * sin( pit ) * omega -
122 u_tilda * cos( sph.
lon ) * cos( sph.
lat ) * cos( pit ) +
123 v * sin( sph.
lon ) * sin( sph.
lat ) * cos( pit ) );
127 sph_dep.lat = lat_dep;
128 sph_dep.lon = lon_dep;
141 double sl2 = sin( sph.
lon / 2 );
142 double pit = M_PI *
t /
T;
144 double coslat = cos( sph.
lat );
145 double sinlat = sin( sph.
lat );
146 double sinlon = sin( sph.
lon );
147 double coslon = cos( sph.
lon );
148 double u = k * sl2 * sl2 * sin( 2 * sph.
lat ) * cos( pit );
149 double v = k / 2 * sinlon * coslat * cos( pit );
150 velo[0] = -u * sinlon - v * sinlat * coslon;
151 velo[1] = u * coslon - v * sinlat * sinlon;
152 velo[2] = v * coslat;
159 std::string tag_name(
"DP" );
177 int num_verts = (int)verts.
size();
179 std::vector< double > dep_points( 3 * num_verts );
187 std::vector< double* > coords;
191 rval = read_iface->
get_node_coords( 3, num_verts, 0, start_vert, coords );
195 for(
int i = 0; i < num_verts; i++ )
198 coords[0][i] = dep_points[3 * i];
199 coords[1][i] = dep_points[3 * i + 1];
200 coords[2][i] = dep_points[3 * i + 2];
215 connect[quad_index * 4] = edge_conn[0];
216 connect[quad_index * 4 + 1] = edge_conn[1];
219 connect[quad_index * 4 + 2] = start_vert + edge_conn[1] - firstVertHandle;
220 connect[quad_index * 4 + 3] = start_vert + edge_conn[0] - firstVertHandle;
223 Range quads( start_elem, start_elem + allEdges.
size() - 1 );
239 std::stringstream outf;
240 outf <<
"SpanQuads" << rank <<
".h5m";
241 rval =
mb->
write_file( outf.str().c_str(), 0, 0, &outSet, 1 );
252 std::stringstream outf2;
253 outf2 <<
"SpanEdges" << rank <<
".h5m";
254 rval =
mb->
write_file( outf2.str().c_str(), 0, 0, &outSet2, 1 );
263 new_edges =
subtract( quadEdges, iniEdges );
265 Range new_verts( start_vert, start_vert + num_verts );
290 std::map< EntityHandle, EntityHandle > newNodes;
302 newNodes[oldV] = new_vert;
324 std::vector< EntityHandle > new_conn( nnodes );
325 for(
int i = 0; i < nnodes; i++ )
328 new_conn[i] = newNodes[v1];