Next: Removing periodic boundary Up: Other possible uses Previous: Other possible uses


Fixed voltages and displacements

 

It is relatively easy in these programs to run a problem with a fixed displacement or a fixed voltage. To fix a given nodal variable at a certain value, simply give it that value initially, and then every time the gradient, gb, is calculated or changed, zero out the gradient with respect to this variable, so that it can never change. In the finite element programs, this needs to be done twice, once in ENERGY, after the gradient is first computed, and then also in DEMBX, after the gradient is updated using the Ah array, which results from the matrix multiply in DEMBX. In the finite difference programs, this zeroing out of gb is done only in DEMBX, since there is no ENERGY subroutine in the finite difference programs.

This technique can be used in THERMAL3D.F to be able to run an applied strain. One simply sets the initial values of the macrostrains to their desired values, and then zeroes out the gradient vector entries corresponding to these macrostrains. The macrostrains will then stay constant, and the solution will be obtained for an applied strain problem where eigenstrains can be specified.

For an electrical example of this process, see Ref. [11], where the intrinsic conductivity of superconducting centro-symmetric inclusions was computed, using the finite element method, by fixing the voltage on the nodes belonging to the inclusion and its surface. This procedure simulated a superconducting inclusion problem, in which the inclusion had no resistance and was therefore an equipotential body. In this problem, the voltage of the inclusion was set to zero at all the nodes composing the inclusion and its surface. A field was applied via periodic boundary conditions, and the rest of the voltages were then found that minimized the energy of the problem. The effective conductivity of the problem was found using the total energy, not the average current, since the current through the superconducting inclusion was not computed using this method. This was a case where the effective conductivity could only be defined via the energy.

An amusing electrical example where this technique can be used successfully is from an important problem in statistical physics, where it is desired to find the total resistance between two nodes in an infinite lattice. Each node is connected to its nearest neighbors by unit resistors. This problem has been worked out completely for the infinite 2-D square and the 3-D cubic lattice [34], analytically. Other papers that have looked at this problem numerically and analytically include [35,36], which include tables of results.

The method of solution is usually to introduce a current source at the origin, and then an equal current sink at a lattice point of interest. The current is fixed, and the voltage between the two nodes is then calculated. The resistance between the two points is simply the ratio of voltage to current introduced, according to Ohm's law. The same problem can be done numerically, using the finite difference method, by fixing the voltages at the two nodes, computing the current in at the one node and out at the other node (which will be equal and opposite), and then computing the effective resistance between the two points via the ratio of fixed voltage difference to computed current. The conductivity chosen for the material being used is arbitrary, since the effective resistance will be proportional to the resistance of a single pixel. We compare to the analytical result for the 2-D square lattice and the 3-D simple cubic lattice, for two nodes separated by 20 lattice spacings, where all results are scaled by the resistance of a single pixel. In 2-D, the exact result for an infinite square lattice is 1.468191. The numerical result, for a 200 x 200 resistor network with periodic boundary conditions, is 1.473655, an error of only 0.4%. The exact result for an infinite 3-D simple cubic lattice is 0.497499, and the numerical result is 0.497905, for a 200 x 200 x 60 lattice. The error in this case is only 0.1%.

Formulas and tables of numerical results for checking other spacings can be found in Refs. [34,35,36]. The integrals in Ref. [34] for the exact solutions can be easily evaluated, with high accuracy, using Gaussian quadratures. A program for generating the Gaussian points and weights for an N-point Gaussian quadrature evaluation is stored with the various programs described in this manual, and is called GAUSS.F. Recall that Gaussian quadrature is only for integrals between -1 and 1. A general integral needs to be changed into this form before using Gaussian quadrature [37]. A listing of GAUSS.F can be found in Sec. 9.3.6.

It is interesting to observe how the 2-D result for the resistance gradually becomes equal to the 3-D result, as the lattice grows in size in the vertical dimension. Figure 12 shows the resistance between nodes that are 20 lattice spacings apart, for lattices that were 200 x 200 in the horizontal direction, and from 0 (2-D) to 60 spacings thick in the vertical direction. By the time that the lattice is about as thick as the spacing between the two nodes of interest, the effective resistance has converged to within a few percent of the 3-D result.

  


Figure 12: Showing the resistance between two nodes, separated by 20 lattice spacings, of a simple cubic network, normalized by the resistance of one bond, as a function of the thickness of the network.

Another application that arises in electrical problems is that of a piece of metal, usually of some odd shape, buried in or attached to a piece of material with finite conductivity. A field is applied from electrodes at either end of the sample, and one wishes to know the resulting voltage of the buried piece of metal. The electrodes have fixed voltages. The voltage must be the same throughout the metallic inclusion, but its value is free to float according to its shape, size, and position in order to solve the problem. One physical example would be an impedance spectroscopy experiment, where the current is applied via a working and counter electrode, and one wishes to know the voltage of a reference electrode that has been attached to or buried in the sample [38]. One way to handle this situation is to make a list of which nodes need to be at the same (but floating) voltage. The simplest starting point is to make all these voltages equal to zero. The conductances between the nodes in the inclusion can be made equal to one, for simplicity, though they will not really appear in the answer. Any positive number will suffice. Then, in every conjugate step where the gradient is computed, the gradient for all this list of nodes should be made equal to the average of all the individual gradients. In this way, the voltage of all these nodes will be forced to be always the same, simulating a metallic inclusion, but can gradually change in order to match the fields outside the inclusion. The correct solution will eventually be reached in the relaxation process. Note, however, that there will be zero current through the inclusion, as all the nodes inside have the same voltage. So this techique is best for inclusions whose voltages are of interest but do not contribute to the current, as in the reference electrode case cited.



Next: Removing periodic boundary Up: Other possible uses Previous: Other possible uses