Electrowetting on dielectric
Classes | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
Voltage< dim > Class Template Reference
Inheritance diagram for Voltage< dim >:
Inheritance graph
[legend]
Collaboration diagram for Voltage< dim >:
Collaboration graph
[legend]

List of all members.

Classes

struct  ScratchData

Public Member Functions

 Voltage (const Triangulation< dim > &tria, Material_Parameters &params, const unsigned deg, const unsigned u_prec, const double ee, const double thres, const unsigned sweeps, const TestCase testcase)
virtual ~Voltage ()

Public Attributes

AsFunction< dim > get_voltage

Protected Types

typedef IteratorGroup
< 3, typename hp::DoFHandler
< dim >::active_cell_iterator > 
Iterator

Protected Member Functions

virtual void AssembleSystem (std::vector< AsFunction< dim > * > &data, const double time, const bool m_threaded=true)
void AssembleCell (const Iterator Its, ScratchData &scratch, typename Problem< dim >::PerTaskData &data)
virtual void SetupDoFsSuffix ()
virtual void ReinitPrec ()
virtual void DoSolve (SolverControl &control)
virtual void SetInitialData ()
virtual void PreRefinementPreffix ()
virtual void PostRefinementSuffix (const std::vector< TrilinosWrappers::Vector > &sol_tmp)

Protected Attributes

const material_functionepsilon
 Permitivity.
const double epsilon_plate
 Permittivity of the plates.
Vbc< dim > volt
 boundary conditions
FunctionMap< dim >::type BCs
 boundary indicators
TrilinosWrappers::PreconditionAMG prec
 Preconditioner (AMG)
TrilinosWrappers::PreconditionAMG::AdditionalData prec_data
 Preconditioner Data.

Detailed Description

template<int dim>
class Voltage< dim >

An elliptic equation that models the electric potential:

\[ - \nabla\cdot\left( [ \varepsilon(\phi) ] \nabla V \right) = q \chi_\Omega, \quad \text{ in } \Omega^\star, \]

with boundary conditions

\[ V = V_0, \quad \text{ on }\partial^\star\Omega^\star, \qquad \partial_{\mathbf{n}} V = 0, \text{ on }\partial\Omega^\star \cap \Gamma, \]

where

\[ \varepsilon(\phi) = \begin{cases} \varepsilon(\phi), & \Omega, \\ \varepsilon^\star, & \Omega^\star \setminus \Omega, \end{cases} \]

with $\varepsilon^\star$ a constant that denotes the permittivity at the plates.

Definition at line 62 of file Voltage.h.


Member Typedef Documentation

template<int dim>
typedef IteratorGroup<3, typename hp::DoFHandler<dim>::active_cell_iterator> Voltage< dim >::Iterator [protected]

We group the iterators of this problem and the problems this one takes information from as follows:

Definition at line 99 of file Voltage.h.


Constructor & Destructor Documentation

template<int dim>
Voltage< dim >::Voltage ( const Triangulation< dim > &  tria,
Material_Parameters params,
const unsigned  deg,
const unsigned  u_prec,
const double  ee,
const double  thres,
const unsigned  sweeps,
const TestCase  testcase 
)

Copy the provided parameters to the members

Parameters:
tria: A reference to the mesh where the problem will live.
params: The collection of material parameters.
deg: The polynomial degree for the finite element space where the voltage is defined.
u_prec: How often we update the preconditioner.
ee: The accuracy to which we iteratively solve the problem.
thres: The aggregation threshold for the AMG preconditioner.
sweeps: The number of smoothing steps the AMG preconditioner must perform.
testcase: The testcase. Used to construct a suitable boundary condition.
template<int dim>
virtual Voltage< dim >::~Voltage ( ) [virtual]

Clear the data


Member Function Documentation

template<int dim>
virtual void Voltage< dim >::AssembleSystem ( std::vector< AsFunction< dim > * > &  data,
const double  time,
const bool  m_threaded = true 
) [protected, virtual]

Assemble the system matrix and right hand side for the current status of the problem

Parameters:
data: The views of the other problems this one needs information from to be able to assemble.
  1. Charge.
  2. Phase Field, from CahnHilliard.
time: The current time.
m_threaded: flag that indicates if the assembly should be done using multithreading.

Implements Problem< dim >.

template<int dim>
void Voltage< dim >::AssembleCell ( const Iterator  Its,
ScratchData scratch,
typename Problem< dim >::PerTaskData data 
) [protected]

Assemble the local problems.

Parameters:
Its: The cell iterators for the current problem and the data.
scratch: The scratch data.
data: The per task data.
template<int dim>
virtual void Voltage< dim >::SetupDoFsSuffix ( ) [protected, virtual]

Apply boundary conditions.

Reimplemented from Problem< dim >.

template<int dim>
virtual void Voltage< dim >::ReinitPrec ( ) [protected, virtual]

Reinitialize the preconditioner

Implements Problem< dim >.

template<int dim>
virtual void Voltage< dim >::DoSolve ( SolverControl control) [protected, virtual]

Solve the system

Parameters:
control: Provides the maximal number of iterations and exit criterion.

Implements Problem< dim >.

template<int dim>
virtual void Voltage< dim >::SetInitialData ( ) [protected, virtual]

Set the initial value of the solution

Implements Problem< dim >.

template<int dim>
virtual void Voltage< dim >::PreRefinementPreffix ( ) [protected, virtual]

Used to handle changes in the triangulation: Copy to the solution transfer

Implements Problem< dim >.

template<int dim>
virtual void Voltage< dim >::PostRefinementSuffix ( const std::vector< TrilinosWrappers::Vector > &  sol_tmp) [protected, virtual]

Used to handle changes in the triangulation: Copy from the solution transfer

Implements Problem< dim >.


Member Data Documentation

template<int dim>
const material_function& Voltage< dim >::epsilon [protected]

Permitivity.

Definition at line 84 of file Voltage.h.

template<int dim>
const double Voltage< dim >::epsilon_plate [protected]

Permittivity of the plates.

Definition at line 85 of file Voltage.h.

template<int dim>
Vbc<dim> Voltage< dim >::volt [protected]

boundary conditions

Definition at line 86 of file Voltage.h.

template<int dim>
FunctionMap<dim>::type Voltage< dim >::BCs [protected]

boundary indicators

Definition at line 87 of file Voltage.h.

template<int dim>
TrilinosWrappers::PreconditionAMG Voltage< dim >::prec [protected]

Preconditioner (AMG)

Definition at line 88 of file Voltage.h.

Preconditioner Data.

Definition at line 89 of file Voltage.h.

template<int dim>
AsFunction<dim> Voltage< dim >::get_voltage

The voltage

Definition at line 177 of file Voltage.h.


The documentation for this class was generated from the following file: