diff --git a/phasefield/analytical.py b/phasefield/analytical.py index 5966bb6c52424a11dec7ed319a0eed1f291093d4..2a6ef6e488acf975b481356dcc83c70eeed1e37d 100644 --- a/phasefield/analytical.py +++ b/phasefield/analytical.py @@ -301,6 +301,21 @@ def pressure_tensor_interface_component(free_energy, order_parameters, dim, a, b return result +def pressure_tensor_interface_component_new(free_energy, order_parameters, dim, a, b): + gamma = extract_gamma(free_energy, order_parameters) + d = Diff + result = 0 + for i, c_i in enumerate(order_parameters): + for j, c_j in enumerate(order_parameters): + t = 2 * d(c_i, a) * d(c_j, b) + if a == b: + t -= sum(d(c_i, g) * d(c_j, g) for g in range(dim)) + t -= 2 * sum(c_i * d(d(c_j, g), g) for g in range(dim)) + gamma_ij = gamma[(i, j)] if i < j else gamma[(j, i)] + result += t * gamma_ij / 2 + return result + + def pressure_tensor_from_free_energy(free_energy, order_parameters, dim, transformation_matrix=None, include_bulk=True, include_interface=True):