def FEA_conv(self, input_tensor, mask_tensor):
     padded_input = self.boundary_padding(input_tensor)  # for boundary consideration
     padded_mask = self.boundary_padding(mask_tensor)  # for boundary consideration
     R_u = mask_conv(padded_input, padded_mask, self.rho)
     R_u_bc = R_u * self.bc_mask # boundary_corrrect
     R_u_bc = tf.pad(R_u_bc[:, 1:-1, 1:-1, :], ((0,0), (1, 1),(1, 1), (0, 0)), "constant")  # for boundary consideration
     return R_u_bc
 def LU_layers(self, input_tensor, mask_tensor):
     from tf_ops_cpp.mask_elast_conv import mask_conv
     padded_input = self.boundary_padding(input_tensor)  # for boundary consideration
     padded_mask = self.boundary_padding(mask_tensor)  # for boundary consideration
     R_u = mask_conv(padded_input, padded_mask, self.rho)
     R_u_bc = R_u * self.bc_mask # boundary_corrrect
     R_u_bc = tf.pad(R_u_bc[:, 1:-1, 1:-1, :], ((0,0), (1, 1),(1, 1), (0, 0)), "constant")  # for boundary consideration
     return R_u_bc