// Create field in H1 space
CHKERR mField.add_field("TEMPERATURE",H1,AINSWORTH_LEGENDRE_BASE,1);
// Add entities to the field on which field is spanning
CHEERR mField.add_ents_to_field_by_type(layer1_set,MBTET,"TEMPERATURE");
// Set approximation order
CHKERR mField.set_field_order(layer1_set,MBTET,"TEMPERATURE",order);
// Create element and add entities to it
CHKERR mField.add_finite_element("TEMP_FE",MF_ZERO);
CHKERR mField.modify_finite_element_add_field_row("TEMP_FE","TEMPERATURE");
CHKERR mField.modify_finite_element_add_field_col("TEMP_FE","TEMPERATURE");
CHKERR mField.modify_finite_element_add_field_data("TEMP_FE","TEMPERATURE");
CHKERR mField.add_ents_to_finite_element_by_TETs(layer1_set,"TEMP_FE");
// Define bit_ref_level for layer 1
BitRefLevel bit_level_layer1;
bit_level_layer1.set(1);
CHKERR mField.getInterface<BitRefManager>()->setBitRefLevelByType (layer1_set, MBTET, bit_level_layer1);
// Create problem for layer 1
CHKERR mField.add_problem("PROB_LAYER1",MF_ZERO); CHKERRG(ierr);
CHKERR mField.modify_problem_add_finite_element("PROB_LAYER1","TEMP_FE");
CHHERR mField.modify_problem_ref_level_set_bit("PROB_LAYER1",bit_level_layer1);
// Create meshset for layer, f.e. layer2_set
// Create elements and add them to meshset for layer 2
// Add another layer
CHEERR mField.add_ents_to_field_by_type(layer2_set,MBTET,"TEMPERATURE");
CHKERR mField.set_field_order(layer2_set,MBTET,"TEMPERATURE",order);
CHKERR mField.add_ents_to_finite_element_by_TETs(layer2_set,"TEMP_FE");
// Define bit_ref_level for layer 2
BitRefLevel bit_level_layer1;
bit_level_layer2.set(2);
CHKERR mField.getInterface<BitRefManager>()->setBitRefLevelByType(layer2_set, MBTET, bit_level_layer2);
CHKERR mField.add_problem("PROB_LAYER2",MF_ZERO); CHKERRG(ierr);
CHKERR mField.modify_problem_add_finite_element("PROB_LAYER2","TEMP_FE");
CHHERR mField.modify_problem_ref_level_set_bit("PROB_LAYER2",bit_level_layer2);