예제 #1
0
 def __init__(self):
     super(Apply, self).__init__()
     self.energy_fn = Energy()
     self.grad = C.GradOperation('grad')
     self.dt = 0.1
     self.temperature = 0.1
     self.gamma = 0.1
     self.mass = 1.0
     self.nu = 1.0 / (self.mass * self.gamma)
     self.xi_c = math.sqrt(2.0 * self.temperature * self.dt * self.nu)
     self.random = P.StandardNormal(seed=1, seed2=2)
예제 #2
0
 def __init__(self, shape, seed=0, seed2=0):
     super(StandardNormalNet, self).__init__()
     self.shape = shape
     self.seed = seed
     self.seed2 = seed2
     self.standard_normal = P.StandardNormal(seed, seed2)
예제 #3
0
os.environ['GLOG_v'] = '3'

# MD configs
dims = 2
dt = 1e-1
temperature = 0.1
gamma = 0.1
mass = 1.0
nu = 1.0 / (mass * gamma)
xi_c = math.sqrt(2.0 * temperature * dt * nu)
dtype = mindspore.float32

# Functions
reduce_sum = P.ReduceSum()
max_op = P.Maximum()
normal = P.StandardNormal(seed=1, seed2=2)
relu = P.ReLU()


@ms_function
def displacement(Ra: Tensor, Rb: Tensor):
    dR = Ra - Rb
    # periodic
    # np.mod(dR + box_size * 0.5, box_size) - box_size * 0.5
    return dR


@ms_function
def pairwise_displacement(R: Tensor):
    dR = F.expand_dims(R, 1) - F.expand_dims(R, 0)
    # periodic