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

List of all members.

Classes

struct  ScratchData

Public Member Functions

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

Public Attributes

AsFunction< dim > get_charge
 The charge.

Protected Types

typedef IteratorGroup
< 4, 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 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_functionconductivity
 Conductivity.
const double lambda
 Coupling parameter.
TrilinosWrappers::PreconditionAMG::AdditionalData prec_data
 Preconditioner (AMG)
TrilinosWrappers::PreconditionAMG prec
 Preconditioner data.

Detailed Description

template<int dim>
class Charge< dim >

A convection diffusion equation to model the transport of charges:

\[ q_t + \nabla\cdot (q \mathbf{u} ) = \nabla \cdot \left[ K(\phi) \nabla \left( \lambda q + V \right) \right], \quad \text{ in } \Omega \]

with boundary condition

\[ K(\phi) \nabla\left( \lambda q + V \right) \cdot \mathbf{n} = 0, \quad \text{ on } \Gamma. \]

Definition at line 20 of file Charge.h.


Member Typedef Documentation

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

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

Definition at line 54 of file Charge.h.


Constructor & Destructor Documentation

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

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 spaces where the charge 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.
template<int dim>
virtual Charge< dim >::~Charge ( ) [virtual]

Clear the data.


Member Function Documentation

template<int dim>
virtual void Charge< 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. Voltage.
  2. Phase field from CahnHilliard.
  3. Velocity.
time: The current time.
m_threaded: flag that indicates if the assembly should be done using multithreading.

Implements Problem< dim >.

template<int dim>
void Charge< 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 Charge< dim >::ReinitPrec ( ) [protected, virtual]

Reinit the preconditioner

Implements Problem< dim >.

template<int dim>
virtual void Charge< 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 Charge< dim >::SetInitialData ( ) [protected, virtual]

Set the initial data

Implements Problem< dim >.

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

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

Implements Problem< dim >.

template<int dim>
virtual void Charge< 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& Charge< dim >::conductivity [protected]

Conductivity.

Definition at line 40 of file Charge.h.

template<int dim>
const double Charge< dim >::lambda [protected]

Coupling parameter.

Definition at line 41 of file Charge.h.

Preconditioner (AMG)

Definition at line 42 of file Charge.h.

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

Preconditioner data.

Definition at line 43 of file Charge.h.

template<int dim>
AsFunction<dim> Charge< dim >::get_charge

The charge.

Definition at line 133 of file Charge.h.


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