interpolateElectricPotential
Interpolate electric potential in electrostatic or DC conduction result at arbitrary spatial locations
Since R2021a
Syntax
Description
returns the interpolated electric potential values at the points specified in
Vintrp
= interpolateElectricPotential(results
,querypoints
)querypoints
.
Examples
Interpolate Electric Potential in 2-D Electrostatic Analysis
Create a square geometry and plot it with the edge labels.
R1 = [3,4,-1,1,1,-1,1,1,-1,-1]'; g = decsg(R1,'R1',('R1')'); pdegplot(g,EdgeLabels="on") xlim([-1.1 1.1]) ylim([-1.1 1.1])
Create an femodel
object for electrostatic analysis and include the geometry into the model.
model = femodel(AnalysisType="electrostatic", ... Geometry=g);
Specify the vacuum permittivity in the SI system of units.
model.VacuumPermittivity = 8.8541878128E-12;
Specify the relative permittivity of the material.
model.MaterialProperties = ...
materialProperties(RelativePermittivity=1);
Apply the voltage boundary conditions on the edges of the square.
model.EdgeBC([1 3]) = edgeBC(Voltage=0); model.EdgeBC([2 4]) = edgeBC(Voltage=1000);
Specify the charge density for the entire geometry.
model.FaceLoad = faceLoad(ChargeDensity=5E-9);
Generate the mesh.
model = generateMesh(model);
Solve the model and plot the electric potential.
R = solve(model); pdeplot(R.Mesh,XYData=R.ElectricPotential, ... Contour="on")
Interpolate the resulting electric potential to a grid covering the central portion of the geometry, for x
and y
from -0.5
to 0.5
.
v = linspace(-0.5,0.5,51); [X,Y] = meshgrid(v); Vintrp = interpolateElectricPotential(R,X,Y);
Reshape Vintrp
and plot the resulting electric potential.
Vintrp = reshape(Vintrp,size(X)); figure contourf(X,Y,Vintrp) colormap(cool) colorbar
Alternatively, you can specify the grid by using a matrix of query points.
querypoints = [X(:),Y(:)]'; Vintrp = interpolateElectricPotential(R,querypoints);
Interpolate Electric Potential in 3-D Electrostatic Analysis
Create an femodel
object model for electrostatic analysis and include a geometry of a plate with a hole into the model.
model = femodel(AnalysisType="electrostatic", ... Geometry="PlateHoleSolid.stl");
Plot the geometry.
pdegplot(model.Geometry,FaceLabels="on",FaceAlpha=0.3)
Specify the vacuum permittivity in the SI system of units.
model.VacuumPermittivity = 8.8541878128E-12;
Specify the relative permittivity of the material.
model.MaterialProperties = ...
materialProperties(RelativePermittivity=1);
Specify the charge density for the entire geometry.
model.CellLoad = cellLoad(ChargeDensity=5E-9);
Apply the voltage boundary conditions on the side faces and the face bordering the hole.
model.FaceBC(3:6) = faceBC(Voltage=0); model.FaceBC(7) = faceBC(Voltage=1000);
Generate the mesh.
model = generateMesh(model);
Solve the model.
R = solve(model)
R = ElectrostaticResults with properties: ElectricPotential: [4747x1 double] ElectricField: [1x1 FEStruct] ElectricFluxDensity: [1x1 FEStruct] Mesh: [1x1 FEMesh]
Plot the electric potential.
pdeplot3D(R.Mesh,ColorMapData=R.ElectricPotential)
Interpolate the resulting electric potential to a grid covering the entire geometry, for x
, y
, and z
.
x = linspace(0,10,11); y = linspace(0,1,5); z = linspace(0,20,11); [X,Y,Z] = meshgrid(x,y,z); Vintrp = interpolateElectricPotential(R,X,Y,Z);
Reshape Vintrp
.
Vintrp = reshape(Vintrp,size(X));
Plot the resulting electric potential as a contour slice plot for two values of the y-coordinate.
figure
contourslice(X,Y,Z,Vintrp,[],[0 1],[])
view([10,10,-10])
axis equal
colorbar
Input Arguments
results
— Solution of electrostatic or DC conduction problem
ElectrostaticResults
object | ConductionResults
object
Solution of an electrostatic or DC conduction problem, specified as an ElectrostaticResults
or ConductionResults
object. Create results
using the solve
function.
xq
— x-coordinate query points
real array
x-coordinate query points, specified as a real array.
interpolateElectricPotential
evaluates the electric potential at
the 2-D coordinate points [xq(i) yq(i)]
or at the 3-D coordinate
points [xq(i) yq(i) zq(i)]
for every i
. Because of
this, xq
, yq
, and (if present)
zq
must have the same number of entries.
interpolateElectricPotential
converts the query points to column
vectors xq(:)
, yq(:)
, and (if present)
zq(:)
. It returns electric potential values as a column vector of
the same size. To ensure that the dimensions of the returned solution are consistent
with the dimensions of the original query points, use reshape
. For
example, use Vintrp = reshape(Vintrp,size(xq))
.
Example: xq = [0.5 0.5 0.75 0.75]
Data Types: double
yq
— y-coordinate query points
real array
y-coordinate query points, specified as a real array.
interpolateElectricPotential
evaluates the electric potential at
the 2-D coordinate points [xq(i) yq(i)]
or at the 3-D coordinate
points [xq(i) yq(i) zq(i)]
for every i
. Because of
this, xq
, yq
, and (if present)
zq
must have the same number of entries.
interpolateElectricPotential
converts the query points to column
vectors xq(:)
, yq(:)
, and (if present)
zq(:)
. It returns electric potential values as a column vector of
the same size. To ensure that the dimensions of the returned solution are consistent
with the dimensions of the original query points, use reshape
. For
example, use Vintrp = reshape(Vintrp,size(yq))
.
Example: yq = [1 2 0 0.5]
Data Types: double
zq
— z-coordinate query points
real array
z-coordinate query points, specified as a real array.
interpolateElectricPotential
evaluates the electric potential at
the 3-D coordinate points [xq(i) yq(i) zq(i)]
. Therefore,
xq
, yq
, and zq
must have
the same number of entries.
interpolateElectricPotential
converts the query points to column
vectors xq(:)
, yq(:)
, and
zq(:)
. It returns electric potential values as a column vector of the
same size. To ensure that the dimensions of the returned solution are consistent with
the dimensions of the original query points, use reshape
. For
example, use Vintrp = reshape(Vintrp,size(zq))
.
Example: zq = [1 1 0 1.5]
Data Types: double
querypoints
— Query points
real matrix
Query points, specified as a real matrix with either two rows for 2-D geometry or
three rows for 3-D geometry. interpolateElectricPotential
evaluates
the electric potential at the coordinate points querypoints(:,i)
for
every i
, so each column of querypoints
contains
exactly one 2-D or 3-D query point.
Example: For a 2-D geometry, querypoints = [0.5 0.5 0.75 0.75; 1 2 0
0.5]
Data Types: double
Output Arguments
Vintrp
— Electric potential at query points
vector
Electric potential at query points, returned as a vector. For query points that are
outside the geometry, Vintrp(i)
= NaN
.
Version History
Introduced in R2021aR2022b: Electric potential in DC conduction results
The function now interpolates electric potential in DC conduction results in addition to electrostatic results.
See Also
Objects
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)