int main() { osh_init(); struct mesh* m = new_box_mesh(2); mesh_derive_model(m, PI / 4); mesh_set_rep(m, MESH_FULL); char fname[64]; unsigned it = 0; mesh_eval_field(m, 0, "adapt_size", 1, fine_fun); { //set mass field to test conservative transfer unsigned nelems = mesh_count(m, mesh_dim(m)); mesh_add_tag(m, mesh_dim(m), TAG_F64, "mass", 1, doubles_filled(nelems, 1.0 / nelems)); } while (refine_by_size(m, 0)) { sprintf(fname, "ref_%u.vtu", it++); write_mesh_vtk(m, fname); mesh_free_tag(m, 0, "adapt_size"); mesh_eval_field(m, 0, "adapt_size", 1, fine_fun); } double minq = 0.1; printf("minq %f\n", minq); it = 0; mesh_free_tag(m, 0, "adapt_size"); mesh_eval_field(m, 0, "adapt_size", 1, coarse_fun); while (coarsen_by_size(m, minq, 0.5)) { printf("%u elements\n", mesh_count(m, mesh_dim(m))); sprintf(fname, "cor_%u.vtu", it++); write_mesh_vtk(m, fname); } free_mesh(m); osh_fini(); }
int osh_command() { int i=0; char command[100]; for(;i<100&&osh_cmd_buff[i]!=' '&&osh_cmd_buff[i]!=13&&osh_cmd_buff[i];++i) { command[i] = osh_cmd_buff[i]; } command[i] = 0; if(streq(command,"clear")==1) { osh_init(); return 10; } if(streq(command,"help")==1) { osh_help(); return 11; } if(streq(command,"shutdown")==1) { return 1; } if(streq(command,"reboot")==1) { return 2; } if(streq(command,"hello")==1) { opos_loader(); return 13; } return 100; }